咨询一个问题:使用 serverless devs 工具实现自动部署时,需要先发布版本,然后切换别名

咨询一个问题:使用 serverless devs 工具实现自动部署时,需要先发布版本,然后切换别名流量到新版本上。

s version publish --description 测试发布

s alias publish --alias-name DEFAULT --version-id 新版本ID -t ./deploy/fc/s.yaml

第二步如何才能自动拿到第一步发布的新版本ID?或者如何将上面两步合成一条原子命令?

展开
收起
码字王 2023-06-12 16:01:33 106 分享 版权
2 条回答
写回答
取消 提交回答
  • 目前没有办法合并,可以指向version-latest,具体可看下这个文档 https://docs.serverless-devs.com/fc/command/alias#alias-publish-%E5%91%BD%E4%BB%A4

    此答案来自钉钉群“阿里函数计算官网客户"

    2023-06-12 21:02:24
    赞同 展开评论
  • 可以在 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,然后在执行自动化部署时调用该脚本即可。

    2023-06-12 16:32:57
    赞同 展开评论

快速交付实现商业价值。

收录在圈子:
+ 订阅
阿里云 云原生应用平台 肩负阿里巴巴集团基础设施云化以及核心技术互联网化的重要职责,致力于打造稳定、标准、先进的云原生产品,成为云原生时代的引领者,推动行业全面想云原生的技术升级,成为阿里云新增长引擎。商业化产品包括容器、云原生中间件、函数计算等。
还有其他疑问?
咨询AI助理