开发者社区 > 云原生 > Serverless > 正文

咨询一个问题:使用 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 81 0
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
    赞同 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 热门讨论

    热门文章

    相关电子书

    更多
    Hologres Serverless之路:揭秘弹性计算组 立即下载
    Serverless开发平台: 让研发效能再提升 立即下载
    Serverless 引领云上研发新范式 立即下载