本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 部署和叫用 Lambda 耐用函數 AWS CLI
使用 AWS CLI 以使用命令來建立和部署 Lambda 耐用函數。此方法可讓您直接控制部署程序的每個步驟。
先決條件
安裝及設定 AWS CLI。如需說明,請參閱安裝 AWS CLI。
使用函數程式碼和耐用的執行 SDK 建立部署套件。
建立具有檢查點許可的 IAM 執行角色。
建立執行角色
建立具有基本 Lambda 執行和檢查點操作許可的 IAM 角色。
建立執行角色
-
建立允許 Lambda 擔任角色的信任政策文件。將此儲存為
trust-policy.json:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } -
建立角色:
aws iam create-role \ --role-name durable-function-role \ --assume-role-policy-document file://trust-policy.json -
連接基本執行政策:
aws iam attach-role-policy \ --role-name durable-function-role \ --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole -
建立檢查點操作的政策。將此儲存為
checkpoint-policy.json:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:CheckpointDurableExecutions", "lambda:GetDurableExecutionState" ], "Resource": "arn:aws:lambda:REGION:ACCOUNT_ID:function:myDurableFunction" } ] } -
建立並連接檢查點政策:
aws iam create-policy \ --policy-name durable-checkpoint-policy \ --policy-document file://checkpoint-policy.json aws iam attach-role-policy \ --role-name durable-function-role \ --policy-arn arn:aws:iam::ACCOUNT_ID:policy/durable-checkpoint-policy
建立耐用的 函數
使用 --durable-config 參數建立您的耐用函數。
建立耐用的函數
-
將具有相依性的函數程式碼封裝到 .zip 檔案中:
zip -r function.zip index.mjs node_modules/ -
建立已啟用持久性執行的函數:
aws lambda create-function \ --function-name myDurableFunction \ --runtime nodejs22.x \ --role arn:aws:iam::ACCOUNT_ID:role/durable-function-role \ --handler index.handler \ --zip-file fileb://function.zip \ --durable-config '{"ExecutionTimeout": 10, "RetentionPeriodInDays":1}'
注意
您只能在建立函數時啟用持久性執行。您無法在現有函數上啟用它。
發佈版本
耐用的函數需要合格的 ARN (具有版本或別名) 才能叫用。發佈函數的版本:
aws lambda publish-version \ --function-name myDurableFunction \ --description "Initial version"
命令會傳回版本 ARN。請注意 ARN 結尾的版本編號 (例如 :1)。
或者,建立指向 版本的別名:
aws lambda create-alias \ --function-name myDurableFunction \ --name prod \ --function-version 1
叫用耐用的 函數
使用合格的 ARN (版本或別名) 叫用您的耐用函數。
同步調用
對於在 15 分鐘內完成的執行,請使用同步調用:
aws lambda invoke \ --function-name myDurableFunction:1 \ --payload '{"orderId": "order-12345"}' \ --cli-binary-format raw-in-base64-out \ response.json
或使用別名:
aws lambda invoke \ --function-name myDurableFunction:prod \ --payload '{"orderId": "order-12345"}' \ --cli-binary-format raw-in-base64-out \ response.json
非同步調用
對於長時間執行的執行,請使用非同步調用:
aws lambda invoke \ --function-name myDurableFunction:prod \ --invocation-type Event \ --payload '{"orderId": "order-12345"}' \ --cli-binary-format raw-in-base64-out \ response.json
使用非同步調用時,Lambda 會立即傳回 。函數會繼續在背景執行。
管理持久的執行
使用下列命令來管理和監控持久的函數執行。
列出執行
列出耐用函數的所有執行:
aws lambda list-durable-executions \ --function-name myDurableFunction:prod
取得執行詳細資訊
取得特定執行的詳細資訊:
aws lambda get-durable-execution \ --function-name myDurableFunction:prod \ --execution-id exec-abc123
取得執行歷史記錄
檢視執行的檢查點歷史記錄:
aws lambda get-durable-execution-history \ --function-name myDurableFunction:prod \ --execution-id exec-abc123
停止執行
停止執行中的耐久執行:
aws lambda stop-durable-execution \ --function-name myDurableFunction:prod \ --execution-id exec-abc123
更新函數程式碼
更新您的耐用函數程式碼並發佈新版本:
更新和發佈新版本
-
更新函數程式碼:
aws lambda update-function-code \ --function-name myDurableFunction \ --zip-file fileb://function.zip -
等待更新完成:
aws lambda wait function-updated \ --function-name myDurableFunction -
發佈新版本:
aws lambda publish-version \ --function-name myDurableFunction \ --description "Updated order processing logic" -
更新別名以指向新版本:
aws lambda update-alias \ --function-name myDurableFunction \ --name prod \ --function-version 2
重要
執行中的執行會繼續使用其啟動的版本。新的調用使用更新的別名版本。
檢視函數日誌
在 CloudWatch Logs 中檢視耐用函數的日誌:
aws logs tail /aws/lambda/myDurableFunction --follow
篩選特定執行的日誌:
aws logs filter-log-events \ --log-group-name /aws/lambda/myDurableFunction \ --filter-pattern "exec-abc123"
清除資源
刪除您的耐用函數和相關聯的資源:
# Delete the function aws lambda delete-function --function-name myDurableFunction # Delete the IAM role policies aws iam detach-role-policy \ --role-name durable-function-role \ --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole aws iam detach-role-policy \ --role-name durable-function-role \ --policy-arn arn:aws:iam::ACCOUNT_ID:policy/durable-checkpoint-policy aws iam delete-policy \ --policy-arn arn:aws:iam::ACCOUNT_ID:policy/durable-checkpoint-policy # Delete the role aws iam delete-role --role-name durable-function-role
後續步驟
使用 部署您的耐用函數之後 AWS CLI:
使用
list-durable-executions和get-durable-execution命令監控執行檢視 AWS CloudTrail 資料事件中的檢查點操作
針對執行失敗或長時間執行的執行設定 CloudWatch 警示
使用 shell 指令碼或 CI/CD 管道自動化部署
如需 Lambda AWS CLI 命令的詳細資訊,請參閱 AWS CLI 命令參考。