Passer au contenu

Comment résoudre les problèmes liés à une règle EventBridge avec Amazon ECS ?

Lecture de 4 minute(s)
0

Ma règle Amazon EventBridge n'invoque pas ma tâche Amazon Elastic Container Service (Amazon ECS).

Brève description

Lorsque vous utilisez une règle EventBridge pour invoquer une tâche Amazon ECS, EventBridge appelle l'API RunTask pour exécuter les tâches.

La règle EventBridge peut ne pas invoquer votre tâche ECS pour les raisons suivantes :

  • La configuration de la règle EventBridge est incorrecte.
  • La configuration cible de la règle EventBridge est incorrecte.
  • Le rôle Gestion des identités et des accès AWS (AWS IAM) ne dispose pas des autorisations nécessaires pour exécuter les tâches.

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.

Vérifier la configuration de la règle EventBridge

Vérifiez si la règle EventBridge est à l’état ACTIVÉ. Si elle est à l’état DÉSACTIVÉ, réactivez la règle et effectuez des tests pour déterminer si la règle peut créer une tâche.

Pour vérifier l'état de la règle, vous pouvez utiliser la console EventBridge ou l'AWS CLI.

Console EventBridge

Procédez comme suit :

  1. Ouvrez la console EventBridge.
  2. Dans le volet de navigation, sélectionnez Règles.
  3. Sous Sélectionner le bus d'événements, sélectionnez le bus d'événements associé à la règle.
  4. Choisissez la règle pour afficher son état.

AWS CLI

Exécutez la commande describe-rule suivante :

aws events describe-rule --name "DailyLambdaFunction" --region "us-east-1"

Remarque : Remplacez us-east-1 par votre région AWS.

Dans la sortie de la commande, vérifiez le paramètre État pour identifier l'état de la règle. Si la règle est à l’état DÉSACTIVÉ, consultez les journaux AWS CloudTrail pour identifier la raison pour laquelle elle a été désactivée.

Assurez-vous que le modèle d'événement est correct et qu'il correspond aux événements provenant de la source d'événement. Pour vérifier le modèle d'événement, utilisez l’environnement de test (sandbox) EventBridge.

Vérifier la configuration cible de la règle EventBridge

Effectuez les opérations suivantes :

  • Vérifiez les paramètres Cluster ECS, TaskDefinition et Configuration du réseau pour la cible de la règle EventBridge afin de vous assurer qu'ils sont corrects.
  • Vérifiez que le rôle IAM EventBridge dispose des autorisations requises pour exécuter la tâche.

Utilisez les métriques Amazon CloudWatch suivantes pour vous aider à résoudre les problèmes :

  • Vérifiez la métrique TriggeredRules. CloudWatch affiche la métrique uniquement lorsqu'un événement déclenche une règle.
  • Utilisez la métrique Invocations pour vérifier le nombre de fois qu’EventBridge a invoqué une règle et a ensuite essayé d'exécuter la tâche ECS.
  • Utilisez la métrique FailedInvocations pour déterminer le nombre d'invocations ayant échoué. Si la valeur est élevée, il se peut que votre cible soit incorrectement configurée.
    Remarque : La statistique Somme est peut-être la statistique la plus utile pour vérifier la métrique FailedInvocations.

Déterminer la raison pour laquelle l'appel d'API RunTask a échoué

Procédez comme suit :

  1. Ouvrez la console CloudTrail.
  2. Dans le volet de navigation, sélectionnez Historique des événements.
  3. Dans la liste déroulante Attributs de recherche, choisissez Nom de l'événement.
  4. Dans la zone de texte, saisissez RunTask pour filtrer les événements liés à l'API RunTask.
  5. Filtrez la plage de temps en fonction de l'exécution prévue de la tâche ECS.
    Remarque : Les valeurs par défaut pour la plage de temps sont 30 minutes, 1 heure, 3 heures et 12 heures. Pour spécifier une plage de temps personnalisée, choisissez Plage absolue.
  6. Choisissez l'événement, puis consultez l'enregistrement d'événement JSON dans la section Enregistrement d'événement. Recherchez la raison de l'échec dans ErrorCode et errorMessage.

Utiliser EventBridge DLQ

Les règles EventBridge prennent en charge les files d'attente de lettres mortes (DLQ). Les DLQ utilisent Amazon Simple Queue Service (Amazon SQS) pour stocker les événements d'invocation ayant échoué dans une file d'attente standard que vous spécifiez. Lorsque la règle d'événement n'invoque pas sa cible, EventBridge fournit des données utiles JSON qui contiennent les détails de l'invocation et les réponses de la cible à la DLQ. Vous pouvez analyser l'échec de la diffusion de l'événement dans la DLQ pour résoudre le problème.

Informations connexes

Comment résoudre les problèmes liés aux règles Amazon EventBridge ?

Comment utiliser une file d'attente de lettres mortes pour résoudre les problèmes liés à FailedInvocations pour les règles EventBridge ?

AWS OFFICIELA mis à jour il y a 8 mois