【问题标题】:How to use AWS CLI to deploy lambda function to specific alias or version?如何使用 AWS CLI 将 lambda 函数部署到特定别名或版本?
【发布时间】:2019-10-09 10:41:28
【问题描述】:

在我拥有 Lambda 版本和别名之前,基于 API update-function-code 我可以通过以下方式成功部署

aws lambda update-function-code --function-name myFunction --zip-file fileb://archive.zip

添加版本和别名后,我有 Lambda 版本

  • $LATEST(默认)
  • 1
  • 2

和别名

  • staging(指向版本1
  • prod(指向版本 2

我尝试部署到staging(版本1),


第一次尝试

aws lambda update-function-code --function-name arn:aws:lambda:us-west-2:123456789000:function:myFunction:staging --zip-file fileb://archive.zip

报错

当前操作不支持 $LATEST 以外的版本。请将版本设置为 $LATEST 或执行 未在您的请求中设置版本。


第二次尝试

aws lambda update-function-code --function-name myFunction --zip-file fileb://archive.zip --s3-object-version 1

aws lambda update-function-code --function-name myFunction --zip-file fileb://archive.zip --s3-object-version staging

报错

请不要提供其他FunctionCode 提供 ZipFile 时的参数。


如何使用 AWS CLI 将 lambda 函数正确部署到特定别名或版本?谢谢

【问题讨论】:

    标签: bash amazon-web-services aws-lambda aws-cli


    【解决方案1】:

    好的,假设您已经设法使用此命令部署了 lambda:

    aws lambda update-function-code --function-name $FUNCTION_NAME --zip-file fileb://lambda.zip
    

    并且您已经创建了具有 2 个别名的 2 个版本(暂存一个产品)。

    现在你只需要发布到正确的版本:

    VERSION=1
    aws lambda update-alias --function-name $FUNCTION_NAME --name staging --function-version $VERSION
    
    VERSION=2
    aws lambda update-alias --function-name $FUNCTION_NAME --name prod --function-version $VERSION
    

    如果您想更进一步,可以将最后一次部署绑定到最新版本。所以首先你需要检索最新版本,为此我使用jq,但你可以随意使用任何你想要的东西,然后用这个版本更新。

    VERSION=$(aws lambda publish-version --function-name $FUNCTION_NAME | jq -r .Version)
    aws lambda update-alias --function-name $FUNCTION_NAME --name staging --function-version $VERSION
    

    这是update-alias 文档。 这是publish-version 文档。

    【讨论】:

    • jq 很有帮助!您必须读懂我的想法,这正是我想到的问题 - 如何从命令中获取结果!
    • 这是一个非常干净的解决方案。谢谢!
    【解决方案2】:

    基于 AWS 文档

    已发布的版本是不可变的。即不能更改代码或配置信息。

    因此您需要发布新版本的函数,然后更新别名以指向新创建的版本。

    【讨论】:

      猜你喜欢
      • 2023-01-24
      • 1970-01-01
      • 1970-01-01
      • 2018-10-21
      • 2018-09-19
      • 1970-01-01
      • 2019-12-18
      • 1970-01-01
      • 2021-06-01
      相关资源
      最近更新 更多