簡體   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