咨询一个问题:使用 serverless devs 工具实现自动部署时,需要先发布版本,然后切换别名流量到新版本上。
s version publish --description 测试发布
s alias publish --alias-name DEFAULT --version-id 新版本ID -t ./deploy/fc/s.yaml
第二步如何才能自动拿到第一步发布的新版本ID?或者如何将上面两步合成一条原子命令?
目前没有办法合并,可以指向version-latest,具体可看下这个文档 https://docs.serverless-devs.com/fc/command/alias#alias-publish-%E5%91%BD%E4%BB%A4
此答案来自钉钉群“阿里函数计算官网客户"
可以在 serverless.yml
文件中使用 ${}
语法来获取上一步发布的版本号,然后将其传递给第二步的命令,以实现自动化部署。
具体来说,你可以将第一步和第二步的命令合并成一个脚本,使用 s version publish
命令的 --json
选项来获取发布的版本号,然后将其传递给 s alias publish
命令。示例脚本如下:
#!/bin/bash
# 发布新版本
result=$(s version publish --description "测试发布" --json)
version=$(echo $result | jq -r '.data.versionId')
# 切换别名流量到新版本
s alias publish --alias-name DEFAULT --version-id $version -t ./deploy/fc/s.yaml
这个脚本中,s version publish
命令的 --json
选项将输出 JSON 格式的结果,然后使用 jq
工具来提取版本号。最后,将版本号传递给 s alias publish
命令来切换别名流量到新版本。你可以将这个脚本保存为一个文件,比如 deploy.sh
,然后在执行自动化部署时调用该脚本即可。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。