Lambda の耐久性のある関数の設定
耐久性のある実行の設定は、Lambda 関数が実行できる時間の長さと、サービスが実行履歴を保持する期間を制御します。関数の耐久性のある実行を有効にするには、これらの設定を構成します。
耐久性のある実行を有効にする
関数を作成するときに DurableConfig オブジェクトを設定して、実行タイムアウトと履歴の保持を設定します。耐久性のある実行を有効にできるのは、画数を作成するときだけです。既存の関数には有効にできません。
設定パラメータ:
ExecutionTimeout– Lambda が実行を停止するまでに耐久性のある実行を実行できる最大時間 (秒)。このタイムアウトは、個々の関数呼び出しではなく、耐久性のある実行全体に適用されます。有効な範囲: 1~31622400。RetentionPeriodInDays– 耐久性のある実行が完了した後に実行履歴を保持する日数。この期間を過ぎると、実行履歴はGetDurableExecutionHistoryAPI から使用できなくなります。有効な範囲: 1~90。
完全な API リファレンスについては、Lambda API リファレンスの「DurableConfig」を参照してください。
設定のベストプラクティス
本番稼働用に耐久性のある関数を設定する際、次のベストプラクティスに従ってください。
-
適切な実行タイムアウトを設定する – ワークフローの最大予想期間に基づいて
ExecutionTimeoutを設定します。コストおよびリソースの割り当てに影響するため、不要に長いタイムアウトを設定しないでください。 -
ストレージコストと保持のバランスを取る – デバッグおよび監査の要件に基づいて
RetentionPeriodInDaysを設定します。保持期間を長くすると、ストレージコストが増加します。 -
状態サイズをモニタリングする – 大規模な状態オブジェクトはストレージコストを増加させ、パフォーマンスに影響する可能性があります。状態を最小限に抑えて、大容量データには外部ストレージを使用します。
-
適切なログを設定する – 長時間実行するワークフローのトラブルシューティングの目的で詳細なログ記録を有効にしますが、ログの量とコストのインパクトに注意してください。
本番稼働設定の例
{ "ExecutionTimeout": 86400, "RetentionPeriodInDays": 7 }
この例では、24 時間 (86,400 秒) の実行タイムアウトと 7 日間の保持期間を設定し、デバッグの可視性とほとんどの本番ワークロードのストレージコストのバランスを取ります。