Envoi d'alertes Amazon Simple Notification Service pour les événements de ECS tâche Amazon arrêtés - 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 de ECS tâche Amazon arrêtés

Configurez une règle d' EventBridge événement Amazon qui capture uniquement les événements de tâche dans lesquels la tâche s'est arrêtée car l'un de ses conteneurs essentiels a été résilié. L'événement envoie uniquement les événements de tâche ayant une stoppedReason propriété spécifique à la SNS rubrique Amazon 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 SNS rubrique et votre EventBridge règle Amazon.

Prérequis : configurer les autorisations pour Amazon SNS

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

Pour plus d'informations sur la façon d'ajouter l'autorisation, consultez SNSles autorisations Amazon 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 SNS rubrique Amazon et s'y abonner

Pour ce didacticiel, vous configurez une SNS rubrique Amazon à 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 SNS rubrique Amazon, 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 SNS rubrique Amazon, consultez la section Créer une règle dans Amazon EventBridge 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é (JSONéditeur)

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 SNSsujet
Rubrique

TaskStoppedAlert (La rubrique que vous avez créée à 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.

  4. Dans la zone de l'JSONéditeur, modifiez votre JSON fichier, 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).