J'ai configuré une règle Amazon EventBridge pour envoyer des notifications à mon Amazon Simple Queue Service (Amazon SQS), mais mon SQS n'a pas reçu les notifications d'événement.
Résolution
Consulter les métriques Amazon CloudWatch de la règle EventBridge pour confirmer les échecs d'invocation
Sélectionnez la plage de temps dans le tableau de bord des métriques CloudWatch pour consulter TriggeredRules et les métriques CloudWatch Invocation et FailedInvocations.
Les données Invocation indiquent que la règle a invoqué la cible. Cependant, les données FailedInvocations indiquent que la cible n'a pas été invoquée. Les données FailedInvocations représentent un échec permanent et peuvent être le résultat d'autorisations incorrectes ou d'une mauvaise configuration de la cible. Pour plus d'informations, consultez la section Métriques d'EventBridge.
Pour vérifier si la file d'attente SQS a reçu une notification, vérifiez les métriques CloudWatch NumberOfMessagesSent de la file SQS.
Vérifiez que vous avez accordé à EventBridge les autorisations nécessaires pour envoyer des messages à votre file d'attente SQS
Votre stratégie basée sur les ressources de la file d'attente Amazon SQS doit autoriser EventBridge à envoyer des messages à la file d'attente. Par exemple, events.amazonaws.com doit être répertorié comme Mandataire du service et sqs:SendMessage doit être répertorié comme valeur Action.
Exemple d’instruction de stratégie basée sur les ressources de file d'attente SQS qui permet à EventBridge d'envoyer des messages à une file d'attente Amazon 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"
}
}
}
Vérifier que votre file d'attente SQS chiffrée dispose des autorisations AWS Key Management Service requises
Si votre file d'attente SQS est chiffrée, créez une clé AWS KMS gérée par le client. Assurez-vous d'inclure les autorisations kms:GenerateDataKey and kms:Decrypt dans votre stratégie de clé KMS. Ces ajouts permettent à EventBridge d'envoyer des messages à la file d'attente chiffrée. Pour en savoir plus, consultez la section Configuration des autorisations AWS KMS.
Utiliser une clé AWS personnalisée pour configurer les autorisations AWS KMS requises :
- Créez une nouvelle clé AWS KMS gérée par le client et incluant les autorisations requises pour EventBridge (events.amazonaws.com).
- Utilisez la clé AWS KMS personnalisée pour configurer le chiffrement côté serveur (SSE) pour votre file d'attente SQS.
Exemple de stratégie de clé KMS qui permet à EventBridge d'envoyer des événements à une file d'attente SQS chiffrée
{
"Sid": "Allow EventBridge to use the key",
"Effect": "Allow",
"Principal": {
"Service": "events.amazonaws.com"
},
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey"
],
"Resource": "*"
},/code>
Informations connexes
Démarrer avec Amazon EventBridge