使用 部署和叫用 Lambda 耐用函數 AWS CLI - AWS Lambda

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 部署和叫用 Lambda 耐用函數 AWS CLI

使用 AWS CLI 以使用命令來建立和部署 Lambda 耐用函數。此方法可讓您直接控制部署程序的每個步驟。

先決條件

  • 安裝及設定 AWS CLI。如需說明,請參閱安裝 AWS CLI

  • 使用函數程式碼和耐用的執行 SDK 建立部署套件。

  • 建立具有檢查點許可的 IAM 執行角色。

建立執行角色

建立具有基本 Lambda 執行和檢查點操作許可的 IAM 角色。

建立執行角色
  1. 建立允許 Lambda 擔任角色的信任政策文件。將此儲存為 trust-policy.json

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. 建立角色:

    aws iam create-role \ --role-name durable-function-role \ --assume-role-policy-document file://trust-policy.json
  3. 連接基本執行政策:

    aws iam attach-role-policy \ --role-name durable-function-role \ --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
  4. 建立檢查點操作的政策。將此儲存為 checkpoint-policy.json

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:CheckpointDurableExecutions", "lambda:GetDurableExecutionState" ], "Resource": "arn:aws:lambda:REGION:ACCOUNT_ID:function:myDurableFunction" } ] }
  5. 建立並連接檢查點政策:

    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 參數建立您的耐用函數。

建立耐用的函數
  1. 將具有相依性的函數程式碼封裝到 .zip 檔案中:

    zip -r function.zip index.mjs node_modules/
  2. 建立已啟用持久性執行的函數:

    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

更新函數程式碼

更新您的耐用函數程式碼並發佈新版本:

更新和發佈新版本
  1. 更新函數程式碼:

    aws lambda update-function-code \ --function-name myDurableFunction \ --zip-file fileb://function.zip
  2. 等待更新完成:

    aws lambda wait function-updated \ --function-name myDurableFunction
  3. 發佈新版本:

    aws lambda publish-version \ --function-name myDurableFunction \ --description "Updated order processing logic"
  4. 更新別名以指向新版本:

    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-executionsget-durable-execution命令監控執行

  • 檢視 AWS CloudTrail 資料事件中的檢查點操作

  • 針對執行失敗或長時間執行的執行設定 CloudWatch 警示

  • 使用 shell 指令碼或 CI/CD 管道自動化部署

如需 Lambda AWS CLI 命令的詳細資訊,請參閱 AWS CLI 命令參考