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 日間の保持期間を設定し、デバッグの可視性とほとんどの本番ワークロードのストレージコストのバランスを取ります。