View a markdown version of this page

設定 Lambda 耐用函數 - AWS Lambda

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

設定 Lambda 耐用函數

持久性執行設定可控制 Lambda 函數可執行的時間長度,以及服務保留執行歷史記錄的時間長度。設定這些設定,為您的函數啟用持久性執行。

啟用持久性執行

在建立函數時設定 DurableConfig 物件,以設定執行逾時和歷史記錄保留。您只能在建立函數時啟用持久性執行。您無法在現有函數上啟用它。

AWS CLI
aws lambda create-function \ --function-name my-durable-function \ --runtime nodejs24.x \ --role arn:aws:iam::123456789012:role/my-durable-role \ --handler index.handler \ --zip-file fileb://function.zip \ --durable-config '{"ExecutionTimeout": 3600, "RetentionPeriodInDays": 30}'
CloudFormation
Resources: MyDurableFunction: Type: AWS::Lambda::Function Properties: FunctionName: my-durable-function Runtime: nodejs24.x Handler: index.handler Code: ZipFile: | // Your durable function code DurableConfig: ExecutionTimeout: 3600 RetentionPeriodInDays: 30

組態參數:

  • ExecutionTimeout – 在 Lambda 停止執行之前,耐久執行可以執行的時間上限,以秒為單位。此逾時適用於整個持久性執行,而非個別函數叫用。有效範圍:1–31622400。

  • RetentionPeriodInDays – 持久性執行完成後保留執行歷史記錄的天數。在此期間之後,將無法再透過 GetDurableExecutionHistory API 使用執行歷史記錄。有效範圍:1–90。

如需完整的 API 參考,請參閱 Lambda API 參考中的 DurableConfig

設定最佳實務

設定生產用途的耐用函數時,請遵循下列最佳實務:

  • 設定適當的執行逾時ExecutionTimeout 根據工作流程的預期持續時間上限來設定 。請勿設定不必要的長逾時,因為它們會影響成本和資源配置。

  • 平衡保留與儲存成本RetentionPeriodInDays根據您的偵錯和稽核需求進行設定。較長的保留期會增加儲存成本。

  • 監控狀態大小 – 大型狀態物件會增加儲存成本,並可能影響效能。將狀態降至最低,並針對大型資料使用外部儲存。

  • 設定適當的記錄 – 啟用詳細記錄,以針對長時間執行的工作流程進行故障診斷,但請考慮對日誌磁碟區和成本的影響。

生產組態範例:

{ "ExecutionTimeout": 86400, "RetentionPeriodInDays": 7 }

此範例會設定 24 小時 (86,400 秒) 執行逾時與 7 天的保留期,在偵錯可見性與大多數生產工作負載的儲存成本之間取得平衡。