Envoi d'alertes Amazon Simple Notification Service pour les événements d'arrêt des tâches Amazon ECS - Amazon Elastic Container Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Envoi d'alertes Amazon Simple Notification Service pour les événements d'arrêt des tâches Amazon ECS

Configurez une règle d' EventBridge événement Amazon qui capture uniquement les événements de tâche lorsque la tâche a cessé de s'exécuter parce que l'un de ses conteneurs essentiels s'est arrêté. L'événement envoie uniquement les événements de tâche ayant une propriété spécifique stoppedReason à la rubrique Amazon SNS désignée.

Prérequis : Configuration d'un cluster test

Si vous ne possédez pas de cluster en cours d'exécution à partir duquel capturer des événements, suivez les étapes dans Mise en route avec la console à l'aide de conteneurs Linux sur AWS Fargate pour en créer un. À la fin de ce didacticiel, vous exécuterez une tâche sur ce cluster pour vérifier que vous avez correctement configuré votre rubrique et votre EventBridge règle Amazon SNS.

Prérequis : configurer les autorisations pour Amazon SNS

EventBridge Pour autoriser la publication sur une rubrique Amazon SNS, utilisez les commandes aws sns get-topic-attributes et aws sns. set-topic-attributes

Pour obtenir des informations sur l’ajout de l’autorisation, consultez Autorisations Amazon SNS dans le Guide du développeur Amazon Simple Notification Service.

Ajoutez les autorisations suivantes :

{ "Sid": "PublishEventsToMyTopic", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sns: Publish", "Resource": "arn:aws:sns:region:account-id:TaskStoppedAlert", }

Étape 1 : Créer une rubrique Amazon SNS et s'y abonner

Pour ce didacticiel, vous configurez une rubrique Amazon SNS à utiliser comme une cible de l'événement pour votre nouvelle règle d'événement.

Pour plus d'informations sur la façon de créer et de s'abonner à une rubrique Amazon SNS, consultez Démarrer avec Amazon SNS dans le Guide du développeur Amazon Simple Notification Service et utilisez le tableau suivant pour déterminer les options à sélectionner.

Option Valeur

Type

Standard
Nom

TaskStoppedAlert

Protocole E-mails
Point de terminaison

Une adresse e-mail à laquelle vous avez actuellement accès

Étape 2 : Enregistrer une règle d'événement

Ensuite, vous enregistrez une règle d'événement qui capture uniquement les événements d'arrêt de la tâche pour les tâches avec des conteneurs arrêtés.

Pour plus d'informations sur la création et l'abonnement à une rubrique Amazon SNS, consultez la section Créer une règle EventBridge dans Amazon dans le guide de EventBridge l'utilisateur Amazon et utilisez le tableau suivant pour déterminer les options à sélectionner.

Option Valeur

Type de règle

Règle avec un modèle d'événement

Source de l’événement AWS événements ou événements EventBridge partenaires
Modèle d'événement

Modèle personnalisé (éditeur JSON)

Modèle d'événement
{ "source":[ "aws.ecs" ], "detail-type":[ "ECS Task State Change" ], "detail":{ "lastStatus":[ "STOPPED" ], "stoppedReason":[ "Essential container in task exited" ] } }
Type de cible

AWS service

Cible Rubrique SNS
Rubrique

TaskStoppedAlert (Le sujet que vous avez créé à l'étape 1)

Étape 3 : Test de la règle

Vérifiez que la règle fonctionne en exécutant une tâche qui se ferme peu après son démarrage. Si votre règle d'événement est configurée correctement, vous recevez un message électronique en quelques minutes avec le texte de l'événement. Si vous disposez d'une définition de tâche existante qui peut satisfaire aux exigences de la règle, exécutez une tâche à l'aide de celle-ci. Si vous ne le faites pas, les étapes suivantes vous permettront d'enregistrer une définition de tâche Fargate et de l'exécuter.

  1. Ouvrez la console à la https://console.aws.amazon.com/ecs/version 2.

  2. Dans le panneau de navigation, choisissez Task definitions (Définition des tâches).

  3. Choisissez Create new task definition (Créer une nouvelle définition de tâche), puis Create new task definition with JSON (Créer une nouvelle définition de tâche avec JSON).

  4. Dans la zone de l'éditeur JSON, modifiez votre fichier JSON, copiez ce qui suit dans l'éditeur.

    { "containerDefinitions":[ { "command":[ "sh", "-c", "sleep 5" ], "essential":true, "image":"amazonlinux:2", "name":"test-sleep" } ], "cpu":"256", "executionRoleArn":"arn:aws:iam::012345678910:role/ecsTaskExecutionRole", "family":"fargate-task-definition", "memory":"512", "networkMode":"awsvpc", "requiresCompatibilities":[ "FARGATE" ] }
  5. Sélectionnez Create (Créer).

Pour exécuter une tâche à partir de la console
  1. Ouvrez la console à la https://console.aws.amazon.com/ecs/version 2.

  2. Sur la page Clusters, choisissez le cluster que vous avez créé dans les conditions préalables.

  3. Sous l'onglet Tasks (Tâches), choisissez Run new task (Exécuter une nouvelle tâche).

  4. Pour Application type (Type d'application), choisissez Task (Tâche).

  5. Pour Définition de la tâche, sélectionnez fargate-task-definition.

  6. Pour Desired tasks (Tâches souhaitées), saisissez le nombre de tâches à lancer.

  7. Sélectionnez Create (Créer).