실패한 Eventbridge 호출 디버깅
7934 단어 serverlesscloudskillsaws
FailedInvocation
Cloudwatch Metric입니다. 메트릭 자체는 이벤트 전달이 실패하는 실제 이유를 파악하기에 충분하지 않습니다.일반적으로 문제
FailedInvocaton
를 디버깅하는 두 가지 옵션이 있습니다.이 블로그 게시물에서는 DLQ를 Eventbridge 대상으로 구성하는 방법과 Cloudwatch Logs에 오류 로그를 작성하는 방법을 보여줍니다.
다음에서 전체 템플릿을 얻을 수 있습니다. https://github.com/markymarkus/cloudformation/blob/master/eventbridge-debug-dlq/template.yml
연습
우리는 AWS::Events::Rule
에서 계정 222222222222의 이벤트 버스로 이벤트를 전달하는 계정 111111111111의 매우 기본적인 custom.source
부터 시작합니다. FailedInvocation
지표는 모든 호출이 실패하고 있음을 보여줍니다.(그림 1 참조)
오류 로깅 활성화
이벤트가 대상 eventbus에 도달하지 못하는 이유를 더 잘 이해할 수 있도록 다음 리소스가 추가되었습니다.
그림 1 아키텍처
그리고 이것은 Cloudformation template에서 구성이 보이는 방식입니다.
CustomEventsRule:
Type: AWS::Events::Rule
Properties:
EventBusName: !GetAtt CustomEventBus.Arn
EventPattern:
source:
- custom.source
State: ENABLED
Targets:
- Id: 'customtarget'
Arn: 'arn:aws:events:eu-west-1:222222222222:event-bus/default'
RetryPolicy:
MaximumRetryAttempts: 0
DeadLetterQueue:
Arn: !GetAtt DLQueue.Arn
배달 못한 편지 대기열 설정이 완료되면 다음 호출 실패를 기다리고 Cloudwath Logs에서 DLQ 핸들러 Lambda의 실행 로그를 엽니다.
ERROR_MESSAGE
및 ERROR_CODE
필드에는 전송이 실패하는 사람이 읽을 수 있는 이유가 있습니다.....
"messageAttributes": {
"RULE_ARN": {
"stringValue": "arn:aws:events:eu-west-1:111111111111:rule/custom_event_bus/dev-eb-debug-CustomEventsRule-3GTDO9NDN1Q9",
"stringListValues": [],
"binaryListValues": [],
"dataType": "String"
},
"TARGET_ARN": {
"stringValue": "arn:aws:events:eu-west-1:222222222222:event-bus/default",
"stringListValues": [],
"binaryListValues": [],
"dataType": "String"
},
"ERROR_MESSAGE": {
"stringValue": "Lack of permissions to invoke cross account target.",
"stringListValues": [],
"binaryListValues": [],
"dataType": "String"
},
"ERROR_CODE": {
"stringValue": "NO_PERMISSIONS",
"stringListValues": [],
"binaryListValues": [],
"dataType": "String"
}
},
이번에는 수신 AWS 계정에서 종료된 Eventbridge 정책으로 인해 전송이 실패했습니다.
결론
일반적으로 DLQ에는 실패한 이벤트를 처리하기 위한 논리가 필요합니다. 실패한 Eventbridge 호출에 대한 경보를 추가하고 DLQ를 통한 로깅은 해당 논리를 추가로 개발해야 하는지 이해하기 위한 첫 번째 단계입니다.
Reference
이 문제에 관하여(실패한 Eventbridge 호출 디버깅), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/aws-builders/debugging-failed-eventbridge-invocation-3ih6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(실패한 Eventbridge 호출 디버깅), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aws-builders/debugging-failed-eventbridge-invocation-3ih6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)