Je souhaite associer une file d'attente de lettres mortes (DLQ) à la cible d'une règle Amazon EventBridge afin de résoudre les problèmes liés à la métrique FailedInvocations.
Résolution
Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l’AWS CLI.
Créer une file d'attente Amazon SQS standard
Utilisez la console Amazon Simple Queue Service (Amazon SQS) pour créer la file d'attente SQS.
Procédez comme suit :
- Ouvrez la console Amazon SQS.
- Choisissez Créer une file d'attente.
- Dans Type, sélectionnez le type de file d’attente Standard.
- Entrez un nom pour votre file d'attente, par exemple myEventBridgeDLQ.
- Choisissez Créer une file d'attente.
Associer la file d'attente SQS à la cible d'une règle EventBridge
Procédez comme suit :
- Ouvrez la console EventBridge.
- Dans le volet de navigation, sélectionnez Règles.
- Sélectionnez la règle EventBridge qui n'a pas réussi à invoquer votre cible, puis choisissez Modifier.
- Dans le volet de navigation, choisissez Sélectionner la ou les cibles, puis sélectionnez Paramètres supplémentaires.
- Dans File d'attente de lettres mortes, choisissez Sélectionner une file d'attente Amazon SQS du compte AWS actuel à utiliser comme file d'attente de lettres mortes. Puis, sélectionnez votre file d'attente SQS dans la liste déroulante Sélectionner une file d'attente SQS.
- Sélectionnez Passer à Vérifier et mettre à jour.
- Sélectionnez Mettre à jour la règle.
EventBridge doit être autorisé à envoyer des événements dont les invocations ont échoué à la file d'attente SQS. Si vous utilisez la console EventBridge pour associer un DLQ à la cible de la règle EventBridge, EventBridge ajoute automatiquement l'autorisation. Si vous utilisez l'interface de ligne de commande AWS, le kit SDK AWS ou AWS CloudFormation, vous devez créer manuellement une politique basée sur les ressources qui accorde l'autorisation requise. Vous pouvez exécuter la commande set-queue-attributes pour modifier la politique.
Important : Si vous avez chiffré la file d'attente SQS, vous devez créer une clé gérée par le client. Vous devez également inclure l'autorisation suivante dans votre stratégie de clé 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": "*"
}
Pour en savoir plus, consultez la section Configuration des autorisations AWS KMS.
Envoyer des événements à votre bus d'événements EventBridge qui correspondent à votre règle EventBridge
Pour envoyer des événements à votre bus d'événements par défaut qui correspondent à votre règle d'événement, modifiez votre environnement AWS pour les événements de service AWS. Si la règle EventBridge ne parvient pas à invoquer la cible, EventBridge envoie tous les événements en échec au DLQ.
Pour envoyer des événements à votre bus d'événements personnalisé qui correspondent à votre règle d'événement, utilisez l'API PutEvents ou la commande put-events.
Pour vérifier la métrique FailedInvocations pour votre règle EventBridge, procédez comme suit :
- Ouvrez la console EventBridge.
- Sélectionnez votre règle EventBridge, puis choisissez l'onglet Surveillance.
- Recherchez MatchedEvents et TriggeredRules pour confirmer que la règle correspond à un événement.
- Vérifiez Invocations et FailedInvocations pour confirmer que la règle a essayé d'invoquer la cible.
Remarque : Si les métriques ne comportent pas de points de données, assurez-vous d'avoir correctement configuré le modèle de règle.
Récupérer l'événement en échec qu'EventBridge a envoyé au DLQ
Procédez comme suit :
- Ouvrez la console EventBridge.
- Dans le volet de navigation, sélectionnez Règles.
- Sélectionnez la règle EventBridge qui a échoué lors de l'invocation.
- Choisissez l'onglet Cibles, puis sélectionnez le DLQ.
- Choisissez Envoyer et recevoir des messages pour ouvrir la page Envoyer et recevoir des messages sur la console SQS.
- Choisissez Rechercher des messages.
Remarque : La section Messages affiche la liste des messages reçus. La liste indique l'ID du message, la date d'envoi, la taille et le nombre de réceptions pour chaque message.
- Sélectionnez l'un des messages. Puis, sélectionnez Afficher les détails pour afficher l'événement qu'EventBridge n'a pas réussi à envoyer à la cible.
- Choisissez l'onglet Attributs pour afficher les attributs ERROR_CODE, ERROR_MESSAGE, RULE_ARN et TARGET_ARN.
Remarque : Les attributs ERROR_CODE et ERROR_MESSAGE fournissent la raison de l'échec de diffusion de l'événement.
Informations connexes
Comment résoudre les problèmes liés aux règles Amazon EventBridge ?
Autorisations Amazon SQS