在拥有Lambda版本和别名之前,我可以基于API update-function-code成功部署
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时的参数。
如何使用AWS CLI将lambda函数正确部署到特定别名或版本?谢谢
答案 0 :(得分: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文档。
答案 1 :(得分:1)
基于AWS文档
发布的版本是不可变的。也就是说,您无法更改代码或配置信息。
因此,您需要发布函数的新版本,然后更新别名以指向新创建的版本。