共计 3709 个字符,预计需要花费 10 分钟才能阅读完成。
作者 | 刘宇(花名:江昱)
在上篇《即学即会 Serverless | 如何解决 Serverless 利用开发部署的难题》中,咱们论述了工具链的重要性,那么本文将率领各位疾速实现 Serverless Devs 入门。
装置工具
- 第一步:请先装置 Node.js(>=10.8.0) 与 NPM 包管理工具;
- 第二步:装置 Serverless Devs 开发者工具;具体的装置形式参考文档:
https://help.aliyun.com/docum…
$ npminstall @serverless-devs/s -g
- 第三步:能够通过 s -v 判断工具是否装置胜利,如果装置胜利能够看到绝对应的版本信息,例如:
@serverless-devs/s:2.0.89, @serverless-devs/core: 0.1.7, darwinarwin-x64, node-v12.15.0
配置密钥
获取密钥
配置 Serverless Devs 的阿里云密钥,个别须要密钥信息,获取页面为:
https://usercenter.console.al…
- AccessKeyID:用户的 AK 信息
- AccessKeySecret:用户的 SK 信息
对于密钥信息的获取流程如下:关上获取密钥页面;_https://usercenter.console.al…
并获取密钥信息:
疏导式密钥配置
通过疏导式进行密钥配置:能够通过 s config add 命令,进行疏导式创立:
执行 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
? AccessKeyID 此处填写 AccessKeyID
? AccessKeySecret 此处填写 AccessKeySecret
? Please create alias for key pair. Ifnot, please enter to skip alibaba-access
Alias: alibaba-access AccountID: 此处填写 AccountID
AccessKeyID: 此处填写 AccessKeyID
AccessKeySecret: 此处填写 AccessKeySecret
Configuration successful
致此,通过疏导式,咱们实现了密钥配置信息。
命令式密钥配置
为了在一些自动化流程中能够更好的应用 Serverless Devs,所以除了通过疏导式进行密钥的配置,Serverless Devs 还反对通过命令行非交互式进行密钥的配置。
同样以阿里云密钥配置为例,能够间接通过参数将密钥信息传入:
$ s configadd --AccessKeyID myAccessKeyID --AccessKeySecret myAccessKeySecret -a demoAlias: demoAccountID: myAccountIDAccessKeyID: myAccessKeyIDAccessKeySecret: myAccessKeySecretConfigurationsuccessful
如果须要配置更多格局的密钥信息,能够通过自定义 Key-Value 实现,例如:
$ s config add--AccessKeyID ****** -kl key1,key2,key3 -il info1,info2,info3 -a demo-2Alias: demo-2key1: info1key2: info2key3: info3AccessKeyID: codeConfigurationsuccessful
通过环境变量配置
有相当一部分的开发者会将密钥信息放在环境变量中,这样在应用工具的时候,就须要从环境变量中读取密钥信息,此时,通过环境变量配置密钥的办法就显得尤为重要,为此,Serverless Devs 提供了两种通过环境变量配置密钥的办法:
办法 1: 间接通过 config add 进行配置
这种办法很简略,根本和下面所形容的命令式密钥配置是相似的,只不过传入的不是固定值,而是环境变量,例如在环境变量中有:
ALIBABA_CLOUD_ACCESS_KEY_ID、ALIBABA_CLOUD_ACCESS_KEY_SECRET 等相干内容;
此时能够通过 s configadd 命令进行增加:
$ s config add -adefault-aliyun -kl AccessKeyID,AccessKeySecret -il${ALIBABA_CLOUD_ACCESS_KEY_ID},${ALIBABA_CLOUD_ACCESS_KEY_SECRET}
办法 2: 通过指定名称应用环境变量密钥
通过指定环境变量的名字进行配置:例如以后有阿里云密钥对:
AccountID:temp_accountid
AccessKeyID:temp_accesskeyid
AccessKeySecret:temp_accesskeysecret
此时能够在环境变量中能够命名 key 为 *_serverless_devs_access,
例如 default_serverless_devs_access,value 为 JSON 字符串,如:
Key:default_serverless_devs_access
Value:{\"AccessKeyID\":\"temp_accesskeyid\",\"AccessKeySecret\":\"temp_accesskeysecret\"}
密钥应用的注意事项
平安相干
云账号 AccessKey 是您拜访阿里云 API 的密钥,具备该账户齐全的权限,请您务必妥善保存!不要通过任何形式(e.g. Github)将 AccessKey 公开到内部渠道,以防止被别人利用而造成平安威逼。强烈建议开发者遵循阿里云平安最佳实际,应用 RAM 子用户 AccessKey 来进行 API 调用。
对于密钥配置中 Alias 的理论思路 **
在 Serverless Devs 中,除了配置云厂商所提供的密钥信息之外,还须要额定进行 Alias 的设置,这里所谓的 Alias 是指对密钥进行的别名设置。因为 Serverless Devs 反对多密钥的配置和治理,所以个别状况下,一个别名对应一个密钥对。相干的最佳实际能够是:
- 有两个账号,别离是阿里云账号和腾讯云账号,那么配置密钥的时候就能够设置别名 alibaba、tencent,在应用的时候,通过援用不同别名应用不同的密钥,以避免每次切换密钥的时候,进行密钥重新配置;
- 本人领有两个环境的密钥,一个是测试环境密钥 test,一个是线上环境密钥 release,当开发实现之后须要把业务部署到不同的环境下,能够通过指定密钥的模式,间接进行部署,而无需因为密钥的切换重复进行密钥的重新配置;
密钥应用办法
在 Serverless Devs 中,密钥的应用次要在两个层面:
- 命令行层面: 在命令行中应用的时候,能够间接通过 -a/–access 参数进行应用,例如在部署某业务的时候,能够通过 s deploy-a demo 指定应用 demo 密钥对;
- Yaml 配置文件层面: 能够通过在 Yaml 中进行密钥对的指定,例如:
在 Yaml 的中间接指定 access,示意整个利用都通过以后密钥对进行部署,也能够在某个模块 / 业务下指定以后模块 / 业务应用某指定的密钥对进行部署。
密钥应用程序相干
密钥反对多种形式的应用,也就会呈现密钥的应用的程序问题:
- 通过 -a/–access 参数指定的密钥信息
- 应用曾经配置的 default 密钥信息
- 应用通过环境变量配置的
`default_serverless_devs_access
密钥信息 - 不应用密钥信息 / 进入密钥信息配置疏导
具体的流程图为:
密钥的其余相干操作
在 Serverless Devs 中,除了配置密钥之外还包含密钥的批改、删除和查看,此时能够通过 s config -h 进行相干性能的查看:
- 密钥的查看,能够通过 s config get -h 查看帮忙;
- 密钥的批改,能够从新进行指定别名的密钥的创立,并通过 -f 参数,强行笼罩;
-
密钥的删除,能够通过 s config delete-h 查看帮忙;
结语
Serverless Devs 能够通过指定格局的 Yaml 对 Serverless 利用进行形容,在 Serverless Devs 的规定中,一个 Yaml 能够被认为是一个 Serverless 利用,在下篇文章中我会为大家具体介绍下 Yaml 的应用标准。
更多内容关注 Serverless 微信公众号(ID:serverlessdevs),会集 Serverless 技术最全内容,定期举办 Serverless 流动、直播,用户最佳实际。