내용으로 건너뛰기

Dead Letter Queue(DLQ)를 사용하여 EventBridge 규칙의 FailedInvocations 지표 문제를 해결하려면 어떻게 해야 합니까?

3분 분량
0

Dead Letter Queue(DLQ)를 Amazon EventBridge 규칙의 대상에 연결하여 FailedInvocations 지표 문제를 해결하고 싶습니다.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

표준 Amazon SQS 대기열 생성

Amazon Simple Queue Service(Amazon SQS) 콘솔을 사용하여 SQS 대기열을 생성합니다.

다음 단계를 완료하십시오.

  1. Amazon SQS 콘솔을 엽니다.
  2. 대기열 생성을 선택합니다.
  3. 유형에서 표준 대기열 유형을 선택합니다.
  4. 대기열 이름을 입력합니다(예: myEventBridgeDLQ).
  5. 대기열 생성을 선택합니다.

SQS 대기열을 EventBridge 규칙의 대상과 연결

다음 단계를 완료하십시오.

  1. EventBridge 콘솔을 엽니다.
  2. 탐색 창에서 규칙을 선택합니다.
  3. 대상 간접 호출에 실패한 EventBridge 규칙을 선택한 다음, 편집을 선택합니다.
  4. 탐색 창에서 대상 선택을 선택한 다음, 추가 설정을 선택합니다.
  5. **DLQ(Dead Letter Queue)**에서 Select an Amazon SQS queue in the current AWS account to use as the dead-letter queue(현재 AWS 계정에서 DLQ(Dead Letter Queue)로 사용할 Amazon SQS 대기열 선택)를 선택합니다. 그런 다음, SQS 대기열 선택 드롭다운 목록에서 SQS 대기열을 선택합니다.
  6. Skip to Review and update(검토 및 업데이트로 건너뛰기)를 선택합니다.
  7. 규칙 업데이트를 선택합니다.

EventBridge에는 간접 호출이 실패한 이벤트를 SQS 대기열로 보낼 수 있는 권한이 있어야 합니다. EventBridge 콘솔을 사용하여 DLQ를 EventBridge 규칙의 대상과 연결하면 EventBridge가 자동으로 권한을 추가합니다. AWS CLI, AWS SDK 또는 AWS CloudFormation을 사용하는 경우 필요한 권한을 부여하는 리소스 기반 정책을 수동으로 생성해야 합니다. set-queue-attributes 명령을 실행하여 정책을 수정할 수 있습니다.

중요: SQS 대기열을 암호화한 경우 고객 관리형 키를 생성해야 합니다. 또한 AWS Key Management Service(AWS KMS) 키 정책에 다음 권한을 포함해야 합니다.

{      "Sid": "Allow EventBridge to use the key",  
    "Effect": "Allow",  
    "Principal": {  
        "Service": "events.amazonaws.com"  
    },  
    "Action": [  
        "kms:Decrypt",  
        "kms:GenerateDataKey"  
    ],  
    "Resource": "*"  
}

자세한 내용은 AWS KMS 권한 구성을 참조하십시오.

EventBridge 규칙과 일치하는 이벤트를 EventBridge 이벤트 버스로 전송

이벤트 규칙과 일치하는 이벤트를 기본 이벤트 버스로 보내려면 AWS 서비스 이벤트의 AWS 환경을 변경하십시오. EventBridge 규칙이 대상을 간접적으로 호출하지 못하면 EventBridge는 실패한 이벤트를 모두 DLQ로 보냅니다.

이벤트 규칙과 일치하는 이벤트를 사용자 지정 이벤트 버스로 보내려면 PutEvents API 또는 put-events 명령을 사용하십시오.

EventBridge 규칙의 FailedInvocations 지표를 확인하려면 다음 단계를 완료하십시오.

  1. EventBridge 콘솔을 엽니다.
  2. EventBridge 규칙을 선택한 다음, 모니터링 탭을 선택합니다.
  3. MatchedEventsTriggeredRules를 찾아 규칙이 이벤트와 일치했는지 확인합니다.
  4. InvocationsFailedInvocations를 확인하여 규칙에서 대상 간접 호출을 시도했는지 확인합니다.

참고: 지표에 데이터 포인트가 없는 경우 규칙 패턴을 올바르게 구성했는지 확인하십시오.

EventBridge가 DLQ로 전송한 실패 이벤트 검색

다음 단계를 완료하십시오.

  1. EventBridge 콘솔을 엽니다.
  2. 탐색 창에서 규칙을 선택합니다.
  3. 간접 호출에 실패한 EventBridge 규칙을 선택합니다.
  4. 대상 탭을 선택한 다음, DLQ를 선택합니다.
  5. 메시지 전송 및 수신을 선택하여 SQS 콘솔에서 메시지 전송 및 수신 페이지를 엽니다.
  6. 메시지 폴링을 선택합니다.
    참고: 메시지 섹션에는 수신한 메시지 목록이 표시됩니다. 목록에는 각 메시지의 메시지 ID, 보낸 날짜, 크기 및 수신 개수가 표시됩니다.
  7. 메시지 중 하나를 선택합니다. 그런 다음, 세부 정보 보기를 선택하여 EventBridge가 대상으로 전송하지 못한 이벤트를 확인합니다.
  8. 속성 탭을 선택하여 ERROR_CODE, ERROR_MESSAGE, RULE_ARNTARGET_ARN 속성을 확인합니다.
    참고: ERROR_CODEERROR_MESSAGE 속성은 이벤트 전송 실패 이유를 제공합니다.

관련 정보

Amazon EventBridge 규칙 관련 문제를 해결하려면 어떻게 해야 합니까?

Amazon SQS 권한

AWS 공식업데이트됨 6달 전