Serverless Devs是一个开源开放的Serverless开发者工具,通过该工具您可以快速地开发、创建、测试和部署项目,实现项目的全生命周期管理。本文以部署运行环境为Node.js 16的函数为例,介绍如何使用Serverless Devs下载对应的函数计算应用模板,然后快速开发部署应用。
背景信息
本文介绍两种方式初始化项目。当您初次使用Serverless Devs时,建议您使用方式一体验Serverless Devs。如果您想了解关于Serverless Devs的更多信息,例如本地调试、远程调用、删除资源等操作,建议您使用方式二体验。
前提条件
方式一:使用s命令管理函数
执行以下命令,进入项目初始化引导模块。
sudo s
请根据引导操作完成项目初始化。输出示例:
? No Serverless-Devs project is currently detected. Do you want to create a new project? Yes
More applications: https://registry.serverless-devs.com
? Hello Serverless for Cloud Vendors Alibaba Cloud Serverless
? Hello, serverlesser. Which template do you like? Quick start [Deploy a Hello World function to FaaS]
? Which template do you like? Node.js
Create application command: [s init start-fc3-nodejs]
? Please input your project name (init dir) start-fc3-nodejs
Downloading[/v3/packages/start-fc3-nodejs/zipball/0.0.9]...
Download start-fc3-nodejs successfully
Serverless Devs Application Case
Cloud services required:
- FC : https://fc.console.aliyun.com/
Tips:
- FC Component: https://github.com/devsapp/fc3/blob/master/docs/zh/readme.md
创建应用所在的地区
? 地域 cn-hangzhou
只能包含字母、数字、下划线和中划线。不能以数字、中划线开头。长度在 1-128 之间。
? 函数名称 start-nodejs-at63
创建应用所在的地区
? nodejs 运行时 nodejs16
? please select credential alias default
* Before using, please check whether the actions command in Yaml file is available
* Carefully reading the notes in s.yaml is helpful for the use of the tool
* If need help in the use process, please apply to join the Dingtalk Group: 33947367
Thanks for using Serverless-Devs
You could [cd /Users/start-fc3-nodejs] and enjoy your serverless journey!
If you need help for this example, you can use [s -h] after you enter folder.
Document ❤ Star: https://github.com/Serverless-Devs/Serverless-Devs
More applications: https://registry.serverless-devs.com
方式二:使用s init命令管理函数
初始化项目。
在目标文件内执行以下命令,初始化项目:
sudo s init start-fc3-nodejs
说明本示例以部署一个运行环境为Node.js 16的函数为例,介绍如何快速初始化一个项目。当需要部署其他运行环境的示例时,您可以在初始化项目时选择对应的运行时。
执行输出:
More applications: https://registry.serverless-devs.com ? Please input your project name (init dir) start-fc3-nodejs Downloading[/v3/packages/start-fc3-nodejs/zipball/0.0.9]... Download start-fc3-nodejs successfully Serverless Devs Application Case Cloud services required: - FC : https://fc.console.aliyun.com/ Tips: - FC Component: https://github.com/devsapp/fc3/blob/master/docs/zh/readme.md 创建应用所在的地区 ? 地域 cn-hangzhou 只能包含字母、数字、下划线和中划线。不能以数字、中划线开头。长度在 1-128 之间。 ? 函数名称 start-nodejs-900k 创建应用所在的地区 ? nodejs 运行时 nodejs16 ? please select credential alias default * Before using, please check whether the actions command in Yaml file is available * Carefully reading the notes in s.yaml is helpful for the use of the tool * If need help in the use process, please apply to join the Dingtalk Group: 33947367 Thanks for using Serverless-Devs You could [cd /Users/start-fc3-nodejs] and enjoy your serverless journey! If you need help for this example, you can use [s -h] after you enter folder. Document ❤ Star: https://github.com/Serverless-Devs/Serverless-Devs More applications: https://registry.serverless-devs.com
当成功初始化项目后,会在当前目录中生成一个start-fc3-nodejs文件夹,该文件夹内包含以下文件:
s.yaml:函数计算资源,该资源是以YAML规范定义的。关于YAML规范的详细信息,请参见YAML规范。
s_en.yaml:同s.yaml。系统默认使用s.yaml文件,如需使用s_en.yaml文件,请在命令中显式指定。例如,部署应用时,命令中增加参数
-t
,即s deploy -t s_en.yaml -y
。code:code文件夹内包含index.js文件,可在该文件内编辑函数代码逻辑。
readme.md:依赖清单文件,该文件内定义了项目所需的各个模块和项目的配置信息。
执行以下命令,进入项目目录内:
cd start-fc3-nodejs
可选:本地调试应用。
执行以下命令进行本地调试。
sudo s local invoke -e "{\"key\": \"value\"}"
部署应用。
执行以下命令,将应用部署至函数计算:
sudo s deploy -y
执行输出:
Steps for [deploy] of [hello-world-app] ==================== [hello_world] completed (1.36s) Result for [deploy] of [hello-world-app] ==================== region: cn-hangzhou description: hello world by serverless devs functionName: start-nodejs-900k handler: index.handler internetAccess: true memorySize: 128 role: runtime: nodejs16 timeout: 30
执行成功后,该命令会将应用部署至函数计算。
可选:远程调试应用。
执行以下命令,远程调试应用:
sudo s invoke -e "{\"key\": \"value\"}"
执行输出:
Steps for [invoke] of [hello-world-app] ==================== ========= FC invoke Logs begin ========= FC Invoke Start RequestId: 1-65bb583a-15b24a10-58ded3270984 load code for handler:index.handler FC Invoke End RequestId: 1-65bb583a-15b24a10-58ded3270984 Duration: 4.43 ms, Billed Duration: 5 ms, Memory Size: 128 MB, Max Memory Used: 8.90 MB ========= FC invoke Logs end ========= Invoke instanceId: c-65bb583a-15416274-0a3cdda6c4ee Code Checksum: 16688953495441179501 Qualifier: LATEST RequestId: 1-65bb583a-15b24a10-58ded3270984 Invoke Result: hello world [hello_world] completed (0.6s)
可选:删除应用。
执行以下命令删除应用:
sudo s remove
执行输出:
Steps for [remove] of [hello-world-app] ==================== Remove function: cn-hangzhou/start-nodejs-900k ? Are you sure you want to delete the resources listed above yes [hello_world] completed (4.09s)
当成功执行该命令时,表示应用已被删除。