Amazon Simple Queue Service(Amazon SQS)에 알림을 보내도록 Amazon EventBridge 규칙을 설정했지만 SQS에서 이벤트 알림을 받지 못했습니다.
해결 방법
EventBridge 규칙의 Amazon CloudWatch 지표를 검토하여 호출 실패를 확인합니다.
CloudWatch 지표 대시보드에서 시간 범위를 선택하여 TriggeredRules, Invocation 및 FailedInvocations 지표를 검토합니다.
호출 데이터는 규칙이 대상을 호출했음을 나타냅니다. 하지만 FailedInvocations 데이터를 보면 대상이 호출되지 않았음을 알 수 있습니다. FailedInvocations는 영구적인 실패를 나타내며 잘못된 권한 또는 대상의 잘못된 구성의 결과일 수 있습니다. 자세한 내용은 EventBridge 지표를 참조하십시오.
SQS 대기열이 알림을 수신했는지 확인하려면 SQS 대기열의 CloudWatch 메트릭에서 NumberOfMessagesSent를 확인합니다.
EventBridge에 SQS 대기열에 메시지를 보내는 데 필요한 권한을 부여했는지 확인합니다.
Amazon SQS 대기열 리소스 기반 정책은 EventBridge가 대기열에 메시지를 전송할 수 있도록 허용해야 합니다. 예를 들어 events.amazonaws.com은 서비스 주체로 나열되고 sqs:SendMessage는 작업 값으로 나열되어야 합니다.
EventBridge가 Amazon SQS 대기열에 메시지를 전송할 수 있도록 허용하는 SQS 대기열 리소스 기반 정책 설명의 예입니다.
{
"Sid": "AWSEvents_custom-eventbus-ack-sqs-rule_dlq_sqs-rule-target",
"Effect": "Allow",
"Principal": {
"Service": "events.amazonaws.com"
},
"Action": "sqs:SendMessage",
"Resource": "arn:aws:sqs:region:account-id:queue-name",
"Condition": {
"ArnEquals": {
"aws:SourceArn": "arn:aws:events:region:account-id:rule/bus-name/rule-name"
}
}
}
암호화된 SQS 대기열에 필요한 AWS 키 관리 서비스 권한이 있는지 확인합니다.
SQS 대기열이 암호화된 경우 고객 관리형 AWS KMS 키를 생성하십시오. KMS 키 정책에 kms:GenerateDataKey 및 kms:Decrypt 권한을 포함해야 합니다. 이러한 추가 기능을 통해 EventBridge는 암호화된 대기열에 메시지를 보낼 수 있습니다. 자세한 내용은 AWS KMS 권한 구성을 참조하십시오.
사용자 지정 AWS 키를 사용하여 필요한 AWS KMS 권한을 설정합니다.
- 고객이 관리하고 EventBridge(events.amazonaws.com)에 필요한 권한을 포함하는 새 AWS KMS 키를 생성합니다.
- 사용자 지정 AWS KMS 키를 사용하여 SQS 대기열의 서버 측 암호화(SSE)를 구성합니다.
EventBridge가 암호화된 SQS 대기열에 이벤트를 전송할 수 있도록 하는 KMS 키 정책의 예
{
"Sid": "Allow EventBridge to use the key",
"Effect": "Allow",
"Principal": {
"Service": "events.amazonaws.com"
},
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey"
],
"Resource": "*"
},/code>
관련 정보
Amazon EventBridge 시작하기