[英]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版本
和别名
我尝试部署到暂存 (版本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.