Événements de changement d’état d’une tâche 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.

Événements de changement d’état d’une tâche Amazon ECS

Les scénarios suivants provoquent des événements de changement d'état de tâche :

Vous appelez les opérations StartTaskRunTask, ou StopTask API, directement ou avec le AWS Management Console AWS CLI, ou SDKs.

Le démarrage ou l'arrêt de tâches crée de nouvelles ressources de tâche ou modifie l'état des ressources de tâche existantes.

Le planificateur de service Amazon ECS service démarre ou arrête une tâche.

Le démarrage ou l'arrêt de tâches crée de nouvelles ressources de tâche ou modifie l'état des ressources de tâche existantes.

L'agent de conteneur Amazon ECS appelle l'opération d'API SubmitTaskStateChange.

En EC2 effet, l'agent de conteneur Amazon ECS surveille l'état de vos tâches sur vos instances de conteneur. L’agent de conteneur Amazon ECS signale tout changement d’état. L'état peut notamment passer de PENDING à RUNNING ou de RUNNING à STOPPED.

Vous forcez le désenregistrement de l'instance de conteneur sous-jacente à l'aide de l'opération DeregisterContainerInstance API et de l'forceindicateur, soit directement, soit avec le ou. AWS Management Console SDKs

L'annulation de l'enregistrement d'une instance de conteneur modifie l'état de l'instance de conteneur et l'état de connexion de l'agent de conteneur Amazon ECS. Si les tâches sont en cours d'exécution sur l'instance de conteneur, l'indicateur force doit être défini pour permettre l'annulation de l'enregistrement. Cette action arrête toutes les tâches sur l'instance.

L'instance de conteneur sous-jacente est arrêtée ou résiliée.

Lorsque vous arrêtez ou résiliez une instance de conteneur, les tâches qui sont en cours d'exécution sur cette dernière passe à l'état STOPPED.

L'état du conteneur de la tâche est modifié.

L'agent de conteneur Amazon ECS supervise l'état des conteneurs dans les tâches. Par exemple, si un conteneur en cours d'exécution dans une tâche s'arrête, le changement d'état de ce dernier génère un événement.

Une tâche utilisant le fournisseur de capacité Fargate Spot reçoit un avis de résiliation.

Lorsqu'une tâche utilise le fournisseur de capacité FARGATE_SPOT et qu'elle est arrêtée en raison d'une interruption Spot, un événement de changement d'état de tâche est généré.

Exemple Événement de modification de l'état de la tâche

Les événements de changement d'état de tâche sont remis dans le format suivant. Remarquez les points suivants concernant les champs :

  • L’état de l’événement n’est pas disponible dans l’événement de changement d’état d’une tâche. Si vous avez besoin de l’état des tâches, vous pouvez exécuter describe-tasks.

  • Si vos conteneurs utilisent une image hébergée avec Amazon ECR, le champ imageDigest est renvoyé.

  • Les valeurs des champs createdAt, connectivityAt, pullStartedAt, startedAt, pullStoppedAt et updatedAt sont des horodatages de chaînes ISO.

  • La valeur de detail-type est « Changement d’état de tâche ECS ».

  • Lorsque l’événement est généré pour une tâche arrêtée, les champs stoppedReason et stopCode fournissent des informations supplémentaires sur la raison pour laquelle la tâche s’est arrêtée (par exemple, « Initié par l’utilisateur »).

Pour plus d'informations sur EventBridge les paramètres, consultez les métadonnées des événements de AWS service dans Amazon EventBridge Events Reference.

Pour plus d'informations sur la configuration d'une règle d' EventBridge événement Amazon qui capture uniquement les événements de tâche lorsque l'exécution de la tâche a été interrompue en raison de la fermeture de l'un de ses conteneurs essentiels, voir Envoi d’alertes Amazon Simple Notification Service pour les événements de tâche Amazon ECS arrêtés

{ "version": "0", "id": "105f6bb1-4da6-c630-4965-35383018cbca", "detail-type": "ECS Task State Change", "source": "aws.ecs", "account": "123456789012", "time": "2025-05-06T11:02:34Z", "region": "us-east-1", "resources": [ "arn:aws:ecs:us-east-1:123456789012:task/example-cluster/a1173316d40a45dea9" ], "detail": { "attachments": [ { "id": "fe3a9a46-6a47-40ee-afd9-7952ae90a75a", "type": "eni", "status": "ATTACHED", "details": [ { "name": "subnetId", "value": "subnet-0d0eab1bb38d5ca64" }, { "name": "networkInterfaceId", "value": "eni-0103a2f01bad57d71" }, { "name": "macAddress", "value": "0e:50:d1:c1:77:81" }, { "name": "privateDnsName", "value": "ip-10-0-1-163.ec2.internal" }, { "name": "privateIPv4Address", "value": "10.0.1.163" } ] } ], "attributes": [ { "name": "ecs.cpu-architecture", "value": "x86_64" } ], "availabilityZone": "us-east-1b", "capacityProviderName": "FARGATE", "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/example-cluster", "connectivity": "CONNECTED", "connectivityAt": "2025-05-06T11:02:17.19Z", "containers": [ { "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/example-cluster/a1173316d40a45dea9/a0a99b87-baa8-4bf6-b9f1-a9a95917a635", "lastStatus": "RUNNING", "name": "web", "image": "nginx", "imageDigest": "sha256:c15da6c91de8d2f436196f3a768483ad32c258ed4e1beb3d367a27ed67253e66", "runtimeId": "a1173316d40a45dea9-0265927825", "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/example-cluster/a1173316d40a45dea9", "networkInterfaces": [ { "attachmentId": "fe3a9a46-6a47-40ee-afd9-7952ae90a75a", "privateIpv4Address": "10.0.1.163" } ], "cpu": "99", "memory": "100" }, { "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/example-cluster/a1173316d40a45dea9/a2010e2d-ba7c-4135-8b79-e0290ff3cd8c", "lastStatus": "RUNNING", "name": "aws-guardduty-agent-nm40lC", "imageDigest": "sha256:bf9197abdf853607e5fa392b4f97ccdd6ca56dd179be3ce8849e552d96582ac8", "runtimeId": "a1173316d40a45dea9-2098416933", "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/example-cluster/a1173316d40a45dea9", "networkInterfaces": [ { "attachmentId": "fe3a9a46-6a47-40ee-afd9-7952ae90a75a", "privateIpv4Address": "10.0.1.163" } ], "cpu": "null" }, { "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/example-cluster/a1173316d40a45dea9/dccf0ca2-d929-471f-a5c3-98006fd4379e", "lastStatus": "RUNNING", "name": "aws-otel-collector", "image": "public.ecr.aws/aws-observability/aws-otel-collector:v0.32.0", "imageDigest": "sha256:7a1b3560655071bcacd66902c20ebe9a69470d5691fe3bd36baace7c2f3c4640", "runtimeId": "a1173316d40a45dea9-4027662657", "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/example-cluster/a1173316d40a45dea9", "networkInterfaces": [ { "attachmentId": "fe3a9a46-6a47-40ee-afd9-7952ae90a75a", "privateIpv4Address": "10.0.1.163" } ], "cpu": "0" } ], "cpu": "256", "createdAt": "2025-05-06T11:02:13.877Z", "desiredStatus": "RUNNING", "enableExecuteCommand": false, "ephemeralStorage": { "sizeInGiB": 20 }, "group": "family:webserver", "launchType": "FARGATE", "lastStatus": "RUNNING", "memory": "512", "overrides": { "containerOverrides": [ { "name": "web" }, { "environment": [ { "name": "CLUSTER_NAME", "value": "example-cluster" }, { "name": "REGION", "value": "us-east-1" }, { "name": "HOST_PROC", "value": "/host_proc" }, { "name": "AGENT_RUNTIME_ENVIRONMENT", "value": "ecsfargate" }, { "name": "STAGE", "value": "prod" } ], "memory": 128, "name": "aws-guardduty-agent-nm40lC" }, { "name": "aws-otel-collector" } ] }, "platformVersion": "1.4.0", "pullStartedAt": "2025-05-06T11:02:24.162Z", "pullStoppedAt": "2025-05-06T11:02:33.493Z", "startedAt": "2025-05-06T11:02:34.325Z", "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/example-cluster/a1173316d40a45dea9", "taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/webserver:5", "updatedAt": "2025-05-06T11:02:34.325Z", "version": 3 } }

Voici un exemple d'événement de changement d'état de tâche pour EC2.

{ "version": "0", "id": "a65cf262-f104-0dd5-ceda-4b09ba71a441", "detail-type": "ECS Task State Change", "source": "aws.ecs", "account": "123456789012", "time": "2025-05-12T13:12:06Z", "region": "us-east-1", "resources": [ "arn:aws:ecs:us-east-1:123456789012:task/example/c1ffa94f19a540ed8d9f7e1d2a5d" ], "detail": { "attachments": [ { "id": "52333e3b-b812-41a8-b057-9ed184bbe5e1", "type": "eni", "status": "ATTACHED", "details": [ { "name": "subnetId", "value": "subnet-0d0eab1bb38d5ca64" }, { "name": "networkInterfaceId", "value": "eni-0ea90f746500773a4" }, { "name": "macAddress", "value": "0e:d5:9b:ce:49:fb" }, { "name": "privateDnsName", "value": "ip-10-0-1-37.ec2.internal" }, { "name": "privateIPv4Address", "value": "10.0.1.37" } ] } ], "attributes": [ { "name": "ecs.cpu-architecture", "value": "x86_64" } ], "availabilityZone": "us-east-1b", "capacityProviderName": "Infra-ECS-Cluster-example-fa84e0cc-AsgCapacityProvider-OseQJU9pizmp", "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/example", "connectivity": "CONNECTED", "connectivityAt": "2025-05-12T13:11:44.98Z", "containerInstanceArn": "arn:aws:ecs:us-east-1:123456789012:container-instance/example/d1d84798400f49f3b21cb61610c1e", "containers": [ { "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/example/c1ffa94f19a540ed8d9f7e1d2a5d3626/197d0994-5367-4a6d-9f9a-f075e4a6", "lastStatus": "RUNNING", "name": "aws-otel-collector", "image": "public.ecr.aws/aws-observability/aws-otel-collector:v0.32.0", "imageDigest": "sha256:7a1b3560655071bcacd66902c20ebe9a69470d5691fe3bd36baace7c2f3c4640", "runtimeId": "8e926f0ccd8fe2b459926f49584ba6d33a3d9f61398dbabe944ee6a13a8ff3a1", "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/example/c1ffa94f19a540ed8d9f7e1d2a5d", "networkInterfaces": [ { "attachmentId": "52333e3b-b812-41a8-b057-9ed184bbe5e1", "privateIpv4Address": "10.0.1.37" } ], "cpu": "0" }, { "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/example/c1ffa94f19a540ed8d9f7e1d2a5d3626/cab39ef0-9c50-459d-844b-b9d51d73d", "lastStatus": "RUNNING", "name": "web", "image": "nginx", "imageDigest": "sha256:c15da6c91de8d2f436196f3a768483ad32c258ed4e1beb3d367a27ed67253e66", "runtimeId": "9f1c73f0094f051541d9e5c2ab1e172d83c4eb5171bcc857c4504b02770ff3b8", "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/example/c1ffa94f19a540ed8d9f7e1d2a5d", "networkInterfaces": [ { "attachmentId": "52333e3b-b812-41a8-b057-9ed184bbe5e1", "privateIpv4Address": "10.0.1.37" } ], "cpu": "99", "memory": "100" } ], "cpu": "256", "createdAt": "2025-05-12T13:11:44.98Z", "desiredStatus": "RUNNING", "enableExecuteCommand": false, "group": "family:webserver", "launchType": "EC2", "lastStatus": "RUNNING", "memory": "512", "overrides": { "containerOverrides": [ { "name": "aws-otel-collector" }, { "name": "web" } ] }, "pullStartedAt": "2025-05-12T13:11:59.491Z", "pullStoppedAt": "2025-05-12T13:12:05.896Z", "startedAt": "2025-05-12T13:12:06.053Z", "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/example/c1ffa94f19a540ed8d9f7e1d2a5d", "taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/webserver", "updatedAt": "2025-05-12T13:12:06.053Z", "version": 4 } }