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