本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
您可以使用版本來管理函數的部署。例如,您可以發佈新版本的函數來測試 Beta 版,而不會影響穩定生產版本的使用者。每次發佈函數時,Lambda 都會建立新版本的函數。新版本是此函數未發佈版本的副本。未發布的版本名稱為 $LATEST
。
重要的是,每當您部署函數程式碼時,都會覆寫 中的目前程式碼$LATEST
。若要儲存 的目前反覆運算$LATEST
,請建立新的函數版本。如果 $LATEST
與先前發布的版本相同,則必須先將變更部署到 $LATEST
,才能建立新版本。這些變更可能包括更新程式碼,或修改函數組態設定。
發布函數版本後,其程式碼、執行時期、架構、記憶體、層以及大多數其他組態設定都是不可變的。這意味著如果未從 $LATEST
發布新版本,就無法變更這些設定。您可以為已發佈的函數版本設定下列項目:
注意
搭配使用執行時期管理控制項與自動模式時,函數版本所使用的執行時期版本會自動更新。使用 Function update (函數更新) 或 Manual (手動) 模式時,不會更新執行階段版本。如需詳細資訊,請參閱了解 Lambda 如何管理執行時期版本更新。
建立函數版本
您只能在未發佈的函數版本上變更函數代碼和設定。當您發佈版本時,Lambda 會鎖定程式碼和大多數設定以為該版本的使用者保持一致的使用體驗。
您可以使用 Lambda 主控台建立函數版本。
新建函數版本
開啟 Lambda 主控台中的函數頁面
。 -
選擇一個函數,然後選擇 Versions 索引標簽。
-
在版本組態頁面上,選擇 Publish new version (發佈新版本)。
-
(選用) 輸入版本描述。
-
選擇 Publish (發佈)。
或者,您可以使用 PublishVersion API 操作發佈函數的版本。
下列 AWS CLI 命令會發佈新版本的 函數。回應會傳回關於新版本的組態資訊,包含版本號碼,以及含有版本尾碼的函式 ARN。
aws lambda publish-version --function-name my-function
您應該會看到下列輸出:
{
"FunctionName": "my-function",
"FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:1",
"Version": "1",
"Role": "arn:aws:iam::123456789012:role/lambda-role",
"Handler": "function.handler",
"Runtime": "nodejs22.x",
...
}
注意
Lambda 會為版本控制指派依序遞增的序號。即使刪除並重新建立函數,Lambda 也不會重複使用版本號碼。
使用版本
您可以使用合格的 ARN 或不合格的 ARN 來參考您的 Lambda 函數。
-
合格的 ARN - 帶有版本尾碼的函數 ARN。下列範例指的是
helloworld
函數的版本 42。arn:aws:lambda:aws-region:acct-id:function:helloworld:42
-
不合格的 ARN - 沒有版本尾碼的函數 ARN。
arn:aws:lambda:aws-region:acct-id:function:helloworld
您可以在所有相關 API 操作中使用合格或不合格的 ARN。但是,您無法使用不合格的 ARN 來建立別名。
如果您決定不發佈函數版本,則可以在事件來源映射中使用合格或不合格的 ARN 來調用函數。當您使用不合格的 ARN 調用函數時,Lambda 會隱含調用 $LATEST
。
只有當從未發布過程式碼或從上次發布版本後程式碼已變更,Lambda 才會發布新的函數版本。如果沒有變更,函數版本會保持在最新發佈的版本。
每個 Lambda 函數版本的合格 ARN 是唯一的。發佈版本之後,您就無法變更 ARN 或函數程式碼。
授予許可
您可以使用以資源為基礎的政策或以身分為基礎的政策來授予您函數的存取權。許可的範圍取決於您是將政策套用至函數或函數的一個版本。如需政策中函數資源名稱的詳細資訊,請參閱微調政策的資源和條件區段。
您可以使用函數別名簡化事件來源和 AWS Identity and Access Management (IAM) 政策的管理。如需詳細資訊,請參閱建立 Lambda 函數的別名。