关于serverless:函数计算HelloWorld应用开发

39次阅读

共计 3308 个字符,预计需要花费 9 分钟才能阅读完成。

场景介绍

场景介绍如何应用函数计算服务开发 HelloWorld 利用。您能够通过控制台或 Funcraft 工具实现。

背景常识

什么是 Serverless

自 2006 年 8 月 9 日,Google 首席执行官埃里克·施密特(Eric Schmidt)在搜索引擎大会(SESSanJose2006)首次提出“云计算”(Cloud Computing)的概念之后,云计算的倒退能够用突飞猛进这个词来形容。那么到底什么才是 Serverless 呢?

简略来说,Serverless 能够说是一种架构,一种云计算倒退的产物,至于具体说什么是 Serverless,可能没有谁能给他一个明确的概念,如果非要说一个能够略微容易了解一些的概念,那或者能够参考 Martin Fowler 在《Serverless Architectures》中对 Serverless 这样定义:Serverless=BaaS + FaaS

步骤一:连贯 ECS 服务器

阿里云云产品资源体验地址:https://developer.aliyun.com/…

场景将提供一台配置了 CentOS 7.7 的 ECS 实例(云服务器)。通过本教程的操作,您能够基于已有的环境开发一个基于函数计算的 HelloWorld 利用。

步骤二:开明函数计算服务

在应用函数计算前,须要开明函数计算服务。

阐明:本场景中提供的阿里云子账号无函数计算服务操作权限,请应用您本人的阿里云账号操作。您无需放心扣费问题,因为函数计算服务有肯定的收费额度,请参见计费形式。

1. 应用您本人的阿里云账号登录阿里云控制台,而后进入函数计算产品详情页。

2. 单击【收费开明】。

  1. 浏览《函数计算服务协定》勾选批准服务协定,最初单击【立刻开明】。


4. 单击【治理控制台】进入函数计算控制台。

步骤三:在控制台开发函数计算 HelloWorld 利用

1. 在函数计算控制台首页,单击【新建函数】。

2. 抉择【HTTP 函数】,而后单击【下一步】。

3. 参考以下阐明填写函数和触发器配置,而后单击【实现】。

  • 所在服务:例如 hello_world_service。
  • 绑定日志:填写所在服务名称后默认勾选绑定日志,日志服务会收取大量费用,您能够抉择勾销勾选。
  • 函数名称:例如 hello_world。
  • 运行环境:抉择 nodejs10。
  • 触发器名称:例如 hello_world_trigger。
  • 认证形式:抉择 anonymous。
  • 申请形式:抉择 GET。


4. 在 代码执行治理 页面,将 index.js 文件中的内容替换为如下所示:

var getRawBody = require('raw-body')
module.exports.handler = function (request, response, context) {getRawBody(request, function (err, data) {var respBody = new Buffer.from("你好,世界!");
        response.setStatusCode(200)
        response.setHeader('content-type', 'text/html')
        response.send(respBody)
    })
};

替换后如下所示:

  1. 单击编辑器右上角【Save Invoke】保留并运行示例代码。


能够看到函数运行胜利,并返回:你好,世界!

步骤四:应用 Funcraft 开发函数计算 HelloWorld 利用

Funcraft 是一个用于反对 Serverless 利用部署的工具,能帮忙您便捷地治理函数计算、API 网关和日志服务等资源。它通过一个资源配置文件(template.yml),帮助您进行开发、构建和部署操作。
本步骤操作将在 ECS 服务器上应用 Funcraft 工具开发函数计算 HelloWorld 利用。
1. 依照以下步骤创立资源。

a.  在页面左侧,单击 云产品资源 下拉菜单,查看本次试验资源。b.  单击 收费开明 创立所需资源。

阐明:资源创立过程须要 1~3 分钟。实现试验资源的创立后,您能够在 云产品资源 列表查看已创立的资源信息,例如:IP 地址、用户名和明码等。

  1. 参考以下步骤连贯 ECS 服务器。
    a. 关上终端工具。

Windows:关上命令窗口。
MAC:关上命令行终端 Terminal。

Windows 用户请查看零碎中是否装置有 SSH 工具。查看办法:
在终端中输出命令 ssh -V。

ssh -V

如果显示 SSH 版本则示意已装置,如下图所示。


如果未装置,请下载安装 OpenSSH 工具。
b. 在终端中输出连贯命令 ssh [username]@[ipaddress]。您须要将其中的 username 和 ipaddress 替换为步骤一中创立的 ECS 服务器的弹性公网 IP。
例如:

ssh root@123.123.123.123


命令显示后果如下:

c.  输出 yes。d.  批准持续后将会提醒输出登录明码。明码为已创立的云服务的 ECS 的登录明码。


登录胜利后会显示如下信息。

3. 在连贯到 ECS 服务器的终端中执行以下命令装置 NodeJS。

curl -sL https://rpm.nodesource.com/setup_10.x | bash - && yum install -y nodejs

4. 执行以下命令装置 Funcraft。

npm install request @alicloud/fun -g

5. 执行 fun config 命令进行本地配置。

fun config

请参考以下信息输入您的阿里云账号 ID、AccessKeyID 和 AccessKey 密钥等信息。

Aliyun Account ID:请在账号平安设置页面查看您的账号 ID。

Aliyun Access Key ID 和 Aliyun Access Key Secret:请在 平安信息管理 页面查看您账号的 AK ID 和 AK Secret。如果您应用的是阿里云主账号,请在平安信息管理页面的平安提醒弹框中单击持续应用 AccessKey。

 如果您应用的是阿里云 RAM 子用户,须要确保您的子用户领有函数计算管理权限 AliyunFCFullAccess,请参见为 RAM 用户受权。如下图所示为您的 AccessKey ID 和 AccessKey Secret。如果您的账号未应用过 AccessKey,请单击右上角创立 AccessKey。

Default region name:请抉择开明的函数计算服务所在地区。


正确设置如下所示:

6. 执行以下命令新建工作空间。

mkdir demo && cd demo

7. 执行 fun init 命令新建一个 HTTP 函数触发器。

fun init http-trigger-nodejs10

命令执行后果如下所示:

其中 index.js 文件为生成的 HelloWorld 函数模板,template.yml 文件中蕴含了 HelloWorld 函数和 HTTP 触发器的默认配置信息。
8. 参考以下步骤批改 index.js 文件内容。

a.  将 index.js 文件内容清空。
cat /dev/null > index.js
b.  应用 vim 关上 index.js 文件。
vim index.js
c.  按下 i 键进入 vim 的编辑模式,在文件中新增以下内容。
var getRawBody = require('raw-body')
module.exports.handler = function (request, response, context) {getRawBody(request, function (err, data) {var respBody = new Buffer.from("你好,世界!");
        response.setStatusCode(200)
        response.setHeader('content-type', 'text/html')
        response.send(respBody)
    })
};
d.  按下 esc 键进入命令模式,输出 :wq 保留并退出 vim。

9. 执行 fun deploy -y 命令部署利用到函数计算服务。

fun deploy -y

命令执行后果如下所示:

至此,咱们实现了一个 HTTP 触发器的函数部署。此时,咱们能够关上 HTTP 触发器的默认 URL,浏览器会以文件模式将函数响应内容下载到本地,您能够参考步骤四应用控制台在线调试。或者您能够绑定一个自定义域名以防止该问题,请参见绑定自定义域名。

正文完
 0