メニュー
AWS Lambda
開発者ガイド

デッドレターキュー

非同期で呼び出された Lambda 関数は 2 回再試行され、その後イベントは破棄されます。再試行に失敗した理由が不明な場合は、デッドレターキュー (DLQ) を使用して、未処理のイベントを Amazon SQS キューまたは Amazon SNS トピックに移動させ、失敗を分析できます。

AWS Lambda はそりできないイベントを指定された Amazon SNS トピックのトピックまたは Amazon SQS キューに移動させます。DLQ を指定しない関数は、再試行の上限に達した後でイベントを破棄します。再試行ポリシーの詳細については、「再試行動作について」を参照してください。

DLQ は、Lambda 関数の DeadLetterConfig パラメータの TargetArn 値に Amazon リソースネーム (ARN) を指定することで設定します (Amazon SQS キューでも Amazon SNS トピックでも同様です)。

{ "Code": { "ZipFile": blob, "S3Bucket": “string”, "S3Key": “string”, "S3ObjectVersion": “string” }, "Description": "string", "FunctionName": "string", "Handler": "string", "MemorySize": number, "Role": "string", "Runtime": "string", "Timeout": number "Publish": bool, "DeadLetterConfig": { "TargetArn": "string" } }

さらに、どのサービスを未処理のイベントに振り分けるかに応じて、Lambda 関数の実行ロールにアクセス権限を追加する必要があります。

DLQ ターゲット ARN に書き込まれるペイロードは、メッセージ本文への変更のない元のイベントペイロードです。次のメッセージの属性には、イベントが処理されなかった理由を理解するのに役立つ情報が含まれています。

名前 タイプ
RequestID 文字列 一意のリクエスト ID
ErrorCode 数値 3 桁の HTTP エラーコード
ErrorMessage 文字列 エラーメッセージ (1 KB に切り捨て)

イベントペイロードがターゲット ARN に達する点で継続的に失敗する場合は、AWS Lambda は DeadLetterErrors と呼ばれる CloudWatch メトリクスをインクリメントしてから、イベントペイロードを削除します。

注記

Amazon SQS をイベントソースとして使用する場合、Amazon SQS キューで Lambda 関数ではなく DLQ を設定することをお勧めします。詳細については、Amazon SQS デッドレターキューを参照してください。