工具安装
- 第一步:安装 Node.js(>=10.8.0) 与 NPM 包管理工具;
-
第二步:安装 Serverless Devs 开发者工具;
$ npm install @serverless-devs/s -g
-
第三步:可以通过
s -v
判断工具是否安装成功,如果安装成功可以看到相对应的版本信息,例如:@serverless-devs/s: 2.0.89, @serverless-devs/core: 0.1.7, darwin-x64, node-v12.15.0
密钥配置
由于本快速上手文档,将会以 阿里云函数计算 为例,所以此处的密钥配置也是以阿里云密钥配置为例:
- 打开 AccountId获取页面 获取AccountId :
- 打开 获取密钥页面 获取密钥信息 :
-
执行
s config add
,并选择Alibaba Cloud (alibaba)
:$ s config add ? Please select a template: Alibaba Cloud (alibaba) ???? Refer to the document for alibaba key: http://config.devsapp.net/account/alibaba ? AccountID ()
-
此时,可以按照引导,进行密钥的配置:
? Please select a template: Alibaba Cloud (alibaba) ???? Refer to the document for alibaba key: http://config.devsapp.net/account/alibaba ? AccountID 此处填写AccountID ? 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 [2021-10-27T17:39:39.881] [INFO ] [S-CLI] - alibaba-access: AccountID: 此处填*******tID AccessKeyID: 此处填*********yID AccessKeySecret: 此处填*************ret
更详细的密钥配置方法,可以参考密钥配置文档云账号 AccessKey 是您访问阿里云 API 的密钥,具有该账户完全的权限,请您务必妥善保管!不要通过任何方式(e.g. Github)将 AccessKey 公开到外部渠道,以避免被他人利用而造成 安全威胁 。
强烈建议您遵循 阿里云安全最佳实践 ,使用 RAM 子用户 AccessKey 来进行 API 调用。
测试项目创建
通过s init
命令创建一个 Python 语言的 Hello World 项目,在引导的过程中,可能会出现填写项目名称以及选择密钥的过程:
- 项目名称可以是:
start-fc-http-python3
- 密钥可以选择我们上文中创建过的:
alibaba-access
例如:
$ s init devsapp/start-fc-http-python3
? ???? Serverless Awesome: https://github.com/Serverless-Devs/package-awesome
? Please input your project name (init dir) start-fc-http-python3
✔ file decompression completed
? please select credential alias alibaba-access
...
???? Thanks for using Serverless-Devs
???? You could [cd /Users/jiangyu/demo/test/start-fc-http-python3] 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
? 是否立即部署该项目? (Y/n)
此时,可以先不进行项目的部署,即选择n
即可。接下来,可以通过cd
等命令进入项目(例如:cd start-fc-http-python3
)。
功能体验
部署 deploy
为了便于后续的体验,可以对默认的s.yaml
文件进行修改,增加自动化日志配置的能力:logConfig: auto
,完整的项目 Yaml 如下:
edition: 1.0.0 # 命令行YAML规范版本,遵循语义化版本(Semantic Versioning)规范
name: fcDeployApp # 项目名称
access: "default" # 秘钥别名
services:
fc-deploy-test: # 服务名称
component: devsapp/fc # 组件名称
props: # 组件的属性值
region: cn-hangzhou
service:
name: fc-deploy-service
description: 'demo for fc-deploy component'
logConfig: auto
function:
name: http-trigger-py36
description: this is a test
runtime: python3
codeUri: ./code
handler: index.handler
memorySize: 128
timeout: 60
triggers:
- name: httpTrigger
type: http
config:
authType: anonymous
methods:
- GET
customDomains:
- domainName: auto
protocol: HTTP
routeConfigs:
- path: /*
methods:
- GET
保存并退出编辑之后,可以执行s deploy
直接进行项目的部署,稍等片刻,即可看到部署结果:
fc-deploy-test:
region: cn-hangzhou
service:
name: fc-deploy-service
function:
name: http-trigger-py36
runtime: python3
handler: index.handler
memorySize: 128
timeout: 60
url:
system_url: https://1583208943291465.cn-hangzhou.fc.aliyuncs.com/2016-08-15/proxy/fc-deploy-service/http-trigger-py36/
custom_domain:
-
domain: http://http-trigger-py36.fc-deploy-service.1583208943291465.cn-hangzhou.fc.devsapp.net
triggers:
-
type: http
name: httpTrigger