AWS Lambda
개발자 안내서

배달 못한 편지 대기열

비동기로 호출된 모든 Lambda 함수는 두 번 재시도한 뒤에 해당 이벤트를 무시하게 됩니다. 재시도에 실패했는데 이유를 모르는 경우, DLQ(배달 못한 편지 대기열)를 사용하여 처리되지 않은 이벤트를 Amazon SQS 대기열 또는 Amazon SNS 주제로 보내 결함을 분석해 볼 수 있습니다.

AWS Lambda는 처리할 수 없는 이벤트를 지정된 Amazon SNS 주제 또는 Amazon SQS 대기열로 보냅니다. DLQ를 지정하지 않은 함수는 재시도 횟수가 끝난 뒤 이벤트를 폐기합니다. 재시도에 대한 자세한 내용은 재시도 동작 이해 단원을 참조하십시오.

Lambda 함수의 DeadLetterConfig 파라미터에 Amazon 리소스 이름(ARN) TargetArn 값을 지정하여 DLQ를 구성할 수 있습니다(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 문자열 고유 요청 식별자
ErrorCode 번호 3자리 HTTP 오류 코드
ErrorMessage 문자열 오류 메시지(1KB로 잘림)

이벤트 페이로드가 지속적으로 대상 ARN에 도달하지 못하면 AWS Lambda는 DeadLetterErrors라는 CloudWatch 측정치를 늘린 다음 해당 이벤트 페이로드를 삭제합니다.

참고

이벤트 소스로 Amazon SQS를 사용 중인 경우 Lambda 함수가 아닌 Amazon SQS 대기열 자체에서 DLQ를 구성하는 것이 좋습니다. 자세한 내용은 Amazon SQS 배달 못한 편지 대기열 단원을 참조하십시오.