title | description | position | category |
---|---|---|---|
快速上手 |
Serverless Devs快速上手教程 |
2 |
概述 |
本快速上手案例以 阿里云函数计算 为例(当然,Serverless Devs 还支持 AWS Lambda,百度智能云函数计算,华为云函数工作流,腾讯云云函数等多个云厂商的 FaaS 平台)的快速上手 Serverless Devs
通过 npm 包管理安装:适用于已经预装了 npm 的 Windows、Mac、Linux 平台。在 Windows、Mac、Linux 平台执行以下命令安装 Serverless Devs Tool工具。
$ npm install @serverless-devs/s -g
或者 通过 yarn 进行安装
$ yarn global add @serverless-devs/s
说明:
- 如果在 Linux 或 MacOS 下执行该命令报错且报错信息为
未找到命令
,请执行命令ln -s serverless-devs安装位置 /usr/bin
,serverless-devs安装位置可以通过find / -name s
查找。- 如果在 Linxu 下执行该命令报错且报错信息为
Error: EACCES: permission denied
,请执行命令npm install @serverless-devs/s -g
。- 如果安装过程较慢,可以考虑使用淘宝 npm 源,安装命令为
npm --registry= https://registry.npmmirror.com install @serverless-devs/s -g
。
打开 releases 页面,在最新的发布版本(Release)中选择对应平台的压缩包,点击直接下载。
压缩包下载到本地后,解压即可直接使用。
下面是针对不同平台的详细操作步骤:
s-*-win.exe.zip
文件(其中 * 表示版本号,如 v3.0.0)。s-*-win.exe.zip
得到 s-*.win.exe
文件,重名为 s.exe
。s.exe
文件拷贝到系统 PATH 目录即可,比如:C:\WINDOWS\System32
。s.exe --version
,查看返回版本号以验证是否安装成功。s-*-linux.zip
文件(其中 * 表示版本号,如 v3.0.0)。$ unzip s-linux.zip
Archive: s-v3.0.0-linux.zip
inflating: s-v3.0.0-linux
$ mv s-*-linux /usr/local/bin/s
$ s -v
@serverless-devs/s: 3.0.0
s-*-macos.zip
文件(其中 * 表示版本号,如 v3.0.0)。$ unzip s-macos.zip
Archive: s-v3.0.0-macos.zip
inflating: s-v3.0.0-macos
$ mv s-*-macos /usr/local/bin/s
$ s -v
@serverless-devs/s: 3.0.0
针对 Mac / Linux 用户
$ curl -o- -L http://cli.so/install.sh | bash
Serverless Devs 开发者工具会不定期的进行更新升级。开发者在使用 Serverless Devs 开发者工具时,可以根据系统提醒进行进行最新版本的感知。
当客户端感知到系统升级之后,开发者可以通过命令npm i -g @serverless-devs/s
进行更新操作,也可以通过 Release 信息查看升级的具体内容,以决定是否进行本次升级。
例如:我当前的 Serverless Devs 的版本是
2.0.89
,当系统升级之后,我再使用Serverless Devs开发者工具,工具将会给出相对应的提醒:╭───────────────────────────────────────────────╮ │ │ │ Update available 2.0.89 → 2.0.90 │ │ Run npm i -g @serverless-devs/s to update │ │ │ ╰───────────────────────────────────────────────╯此时,只需要按照提醒进行工具更新升级即可。
由于本快速上手文档,将会以 阿里云函数计算 为例,所以此处的密钥配置也是以阿里云密钥配置为例:
打开 获取密钥页面 获取密钥信息 :
执行s config add
,并选择Alibaba Cloud (alibaba)
:
$ s config add
? Please select a provider: Alibaba Cloud (alibaba)
🧭 Refer to the document for alibaba key: http://config.devsapp.net/account/alibaba
? AccessKeyID:
此时,可以按照引导,进行密钥的配置:
? Please select a template: Alibaba Cloud (alibaba)
🧭 Refer to the document for alibaba key: http://config.devsapp.net/account/alibaba
? AccessKeyID 此处填写AccessKeyID
? AccessKeySecret 此处填写AccessKeySecret
? Please create alias for key pair. If not, please enter to skip alibaba-access
Alias: alibaba-access
AccountID: 自动获取AccountID
AccessKeyID: 此处填写AccessKeyID
AccessKeySecret: 此处填写AccessKeySecret
✔ Configuration successful
为了验证密钥是否正确配置,可以通过s config get -a alibaba-access
进行指定密钥的查看:
$ s config get -a alibaba-access
alibaba-access:
AccountID: 此处填*******tID
AccessKeyID: 此处填*********yID
AccessKeySecret: 此处填*************ret
云账号 AccessKey 是您访问阿里云 API 的密钥,具有该账户完全的权限,请您务必妥善保管!不要通过任何方式(e.g. Github)将 AccessKey 公开到外部渠道,以避免被他人利用而造成 安全威胁 。
强烈建议您遵循 阿里云安全最佳实践 ,使用 RAM 子用户 AccessKey 来进行 API 调用。
执行s
命令:
$ s
? No Serverless-Devs project is currently detected. Do you want to create a new project? (Y/n)
填写y
,并按回车,可以进入到创建引导部分:
🚀 More applications: https://registry.serverless-devs.com
? Hello Serverless for Cloud Vendors (Use arrow keys or type to search)
❯ Alibaba Cloud Serverless
AWS Cloud Serverless
Tencent Cloud Serverless
Huawei Cloud Serverless
Baidu Cloud Serverless
Dev Template for Serverless Devs
此时只需要选择对应的选项,按照引导进行操作,即可。例如选择Alibaba Cloud Serverless
,就可以看到阿里云Serverless产品下的应用模板分类:
? Hello, serverlesser. Which template do you like? (Use arrow keys or type to search)
❯ Quick start
Custom runtime example
Container example
Custom domain example
此时可以继续选择某分类下的具体应用进行初始化,例如选择Quick start
之后,可以看到该分类下的具体模板应用:
? Which template do you like? (Use arrow keys or type to search)
❯ Node.js
Python3
Java
Go
Dotnet
选择Node.js
即可完成创建,在引导的过程中,可能会出现填写项目名称以及选择密钥的过程:
start-fc-http-nodejs14
cn-hangzhou
start-fc-http-nodejs14
nodejs14
alibaba-access
例如:
🚀 More applications: https://registry.serverless-devs.com
? Hello Serverless for Cloud Vendors (Use arrow keys or type to search)
❯ Alibaba Cloud Serverless
? 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-fc-http-nodejs14
Downloading[/v3/packages/start-fc3-nodejs/zipball/0.0.7]...
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-fc-http-nodejs14
创建应用所在的地区
? nodejs 运行时 nodejs14
? please select credential alias alibaba-access
* 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 ******/start-fc-http-nodejs14] 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-fc-http-nodejs14
目录,使用s deploy
进行项目部署,稍等片刻,可以看到部署结果:
🚀 Result for [deploy] of [hello-world-app]
====================
hello_world:
region: cn-hangzhou
description: hello world by serverless devs
functionName: start-fc-http-nodejs14
handler: index.handler
internetAccess: true
memorySize: 128
role:
runtime: nodejs14
timeout: 30
此时我们已经成功部署了一个应用。可以前往函数计算控制台查看详情。
部署成功之后,我们可以使用s invoke
命令对该函数应用进行调用。例如:
$ s invoke -e "{\"key\": \"val\"}"
⌛ Steps for [invoke] of [hello-world-app]
====================
========= FC invoke Logs begin =========
FC Invoke Start RequestId: 1-6551e2b4-a057ee3a45ccf4f082ae5d2d
load code for handler:index.handler
FC Invoke End RequestId: 1-6551e2b4-a057ee3a45ccf4f082ae5d2d
Duration: 4.14 ms, Billed Duration: 5 ms, Memory Size: 128 MB, Max Memory Used: 9.58 MB
========= FC invoke Logs end =========
Invoke instanceId: c-6551e2b5-f9c5c77480384d1aa28d
Code Checksum: 11010102639495810358
Qualifier: LATEST
RequestId: 1-6551e2b4-a057ee3a45ccf4f082ae5d2d
Invoke Result:
val
✔ [hello_world] completed (1.34s)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。