繁体   English   中英

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

[英]How to use AWS CLI to deploy lambda function to specific alias or version?

在获得Lambda版本和别名之前,我可以根据API 更新功能代码成功部署

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

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

  • $ LATEST (默认)
  • 1
  • 2

和别名

  • 登台 (指向版本1
  • 产品 (指向版本2

我尝试部署到暂存 (版本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

给了错误

提供ZipFile时,请勿提供其他FunctionCode参数。


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

好的,假设您已经使用以下命令成功部署了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

这是更新别名文档。 这是发布版本的文档。

基于AWS文档

发布的版本是不可变的。 也就是说,您无法更改代码或配置信息。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM