场景介绍本场景介绍如何使用函数计算服务开发HelloWorld应用。您可以通过控制台或Funcraft工具来完成。背景知识什么是Serverless从2006年8月9日起,谷歌CEO埃里克·施密特(EricSc??hmidt)在搜索引擎大会(SESSanJose2006)上首次提出了“云计算”(CloudComputing)的概念。计算的发展可以用“日新月异”二字来形容。那么无服务器到底是什么?简单来说,Serverless可以说是一种架构,是云计算发展的产物。至于Serverless到底是什么,可能没有人给他一个明确的概念。如果非要说一个容易理解一点的概念,那么可以参考《Serverless Architectures》中MartinFowler对Serverless的定义:Serverless=BaaS+FaaSStep1:连接ECS服务器阿里云云产品资源体验地址:https://developer.aliyun.com/...该场景将提供一个配置有CentOS7.7的ECS实例(云服务器)。通过本教程的操作,您可以在现有环境的基础上开发一个基于函数计算的HelloWorld应用。第二步:开通函数计算服务使用函数计算前,您需要开通函数计算服务。注意:本场景提供的阿里云子账号没有函数计算服务的操作权限。请使用您自己的阿里云账号进行操作。您无需担心计费问题,因为函数计算服务有一定的免费额度,详见计费方式。1、使用自己的阿里云账号登录阿里云控制台,进入函数计算产品详情页面。2.点击【免费开通】。阅读《函数计算服务协议》,勾选同意服务协议,最后点击【立即注册】。4.点击【管理控制台】,进入函数计算控制台。第三步:在控制台开发函数计算HelloWorld应用1.在函数计算控制台首页,点击【新建函数】。2.选择[HTTP功能],然后单击[下一步]。3.参照以下说明填写函数和触发器配置,然后点击【完成】。服务:例如hello_world_service。绑定日志:填写服务名称后,默认勾选绑定日志。日志服务会收取少量费用,您可以选择不勾选。函数名称:例如hello_world。运行环境:选择nodejs10。触发器名称:例如hello_world_trigger。认证方式:选择匿名。请求方式:选择GET。4.在代码执行管理页面,将index.js文件中的内容替换为:vargetRawBody=require('raw-body')module.exports.handler=function(request,response,context){getRawBody(request,function(err,data){varrespBody=newBuffer.from("Hello,world!");response.setStatusCode(200)response.setHeader('content-type','text/html')响应。发送(respBody)})};替换后是这样的:点击编辑器右上角的【SaveInvoke】保存示例代码并运行。可以看到函数运行成功并返回:Hello,world!第四步:使用Funcraft开发函数计算HelloWorld应用Funcraft是一款支持Serverless应用部署的工具,可以帮助您轻松管理函数计算、API网关、日志服务等资源。它通过一个资源配置文件(template.yml)协助您进行开发、构建和部署操作。本步骤将使用Funcraft工具在ECS服务器上开发FunctionComputingHelloWorld应用。1.按照以下步骤创建资源。A。在页面左侧,点击云产品资源下拉菜单,可以查看本次实验的资源。b.单击免费激活以创建所需的资源。注意:资源创建过程需要1到3分钟。创建实验资源后,可以在云产品资源列表中查看创建的资源信息,如IP地址、用户名、密码等。参考以下步骤连接ECS服务器。A。打开终端工具。Windows:打开命令窗口。MAC:打开命令行终端Terminal。Windows用户请检查系统是否安装了SSH工具。查看方法:在终端输入命令ssh-V。ssh-V如果显示SSH版本,说明已经安装,如下图。如果未安装,请下载并安装OpenSSH工具。b.在终端输入连接命令ssh[用户名]@[ip地址]。需要将username和ipaddress替换为步骤1中创建的ECS服务器的EIP。例如:sshroot@123.123.123.123命令显示结果如下:c.输入是。d.同意后继续,会提示输入登录密码。密码为创建的云服务的ECS登录密码。登录成功后,会显示如下信息。3.在连接ECS服务器的终端执行如下命令安装NodeJS。卷曲-sLhttps://rpm.nodesource.com/setup_10.x|bash-&&yuminstall-ynodejs4.执行以下命令安装Funcraft。npminstallrequest@alicloud/fun-g5.执行funconfig命令进行本地配置。fun配置请参考以下信息输入您的阿里云账号ID、AccessKeyID、AccessKey等信息。阿里云账号:请在账号安全设置页面查看您的账号ID。AliyunAccessKeyID和AliyunAccessKeySecret:请在安全信息管理页面查看您账户的AKID和AKSecret。如果您使用的是阿里云主账号,在安全信息管理页面的安全提示框中点击继续使用AccessKey。如果您使用的是阿里云RAM子用户,您需要确保您的子用户拥有函数计算管理权限AliyunFCFullAccess,参见RAM用户授权。下图显示了您的AccessKeyID和AccessKeySecret。如果您的账户没有使用过AccessKey,请点击右上角创建AccessKey。默认地域名称:请选择开通函数计算服务的地域。正确的设置如下:6.执行以下命令创建一个新的工作空间。mkdirdemo&&cddemo7.执行funinit命令创建一个新的HTTP函数触发器。funinithttp-trigger-nodejs10命令执行结果如下:index.js文件为生成的HelloWorld函数模板,template.yml文件包含HelloWorld函数和HTTP触发器的默认配置信息。8、参考以下步骤修改index.js文件内容。A。清除index.js文件的内容。cat/dev/null>index.jsb。用vim打开index.js文件。vim索引.jsc。按i键进入vim的编辑模式,在文件中添加如下内容。vargetRawBody=require('raw-body')module.exports.handler=function(request,response,context){getRawBody(request,function(err,data){varrespBody=newBuffer.from("你好,世界!");response.setStatusCode(200)response.setHeader('content-type','text/html')response.send(respBody)})};d.按esc键进入命令模式,输入:wq保存退出vim。9.执行fundeploy-y命令将应用部署到函数计算服务中。fundeploy-y命令的执行结果如下:至此,我们完成了一个HTTP触发器的功能部署。此时,我们可以打开HTTP触发器的默认URL,浏览器会将函数响应内容以文件的形式下载到本地。可以参考步骤4使用控制台在线调试。或者您可以绑定自定义域名来避免此问题,请参见绑定自定义域名。
