Eventos de alteração de estado de tarefa do Amazon ECS - Amazon Elastic Container Service

Eventos de alteração de estado de tarefa do Amazon ECS

Os seguintes cenários causam eventos de alteração do estado da tarefa:

As operações de API StartTask, RunTask ou StopTask são chamadas diretamente ou com o AWS Management Console, AWS CLI ou os SDKs.

A inicialização ou a parada de tarefas cria novos recursos de tarefa ou modifica o estado de recursos da tarefa existente.

O programador de serviços do Amazon ECS inicia ou interrompe uma tarefa.

A inicialização ou a parada de tarefas cria novos recursos de tarefa ou modifica o estado de recursos da tarefa existente.

O agente de contêiner do Amazon ECS chama a operação da API SubmitTaskStateChange.

Para o tipo de execução do Amazon EC2, o agente de contêiner do Amazon ECS monitora o estado das tarefas nas instâncias de contêiner. O agente de contêiner do Amazon ECS relata todas as alterações de estado. Alterações de estado podem incluir mudanças de PENDING para RUNNING ou de RUNNING para STOPPED.

O cancelamento do registro de instância de contêiner subjacente é cancelado com a operação de API DeregisterContainerInstance e o sinalizador force, seja diretamente ou com o AWS Management Console ou os SDKs.

O cancelamento do registro de uma instância de contêiner altera o status da instância de contêiner e o status de conexão do agente de contêiner do Amazon ECS. Caso as tarefas estejam em execução na instância de contêiner, o sinalizador force deve ser definido para permitir o cancelamento do registro. Isso para todas as tarefas na instância.

A instância de contêiner subjacente é parada ou encerrada.

Quando você para ou encerra uma instância de contêiner, as tarefas em execução nela são transicionadas para o status STOPPED.

Um contêiner na tarefa muda de estado.

O agente de contêiner do Amazon ECS monitora o estado dos contêineres dentro das tarefas. Por exemplo, caso um contêiner em execução dentro de uma tarefa seja interrompido, essa alteração no estado do contêiner gera um evento.

Uma tarefa que utiliza o fornecedor de capacidade do Fargate Spot recebe um aviso de término.

Quando uma tarefa está usando o provedor de capacidade do FARGATE_SPOT e é interrompida devido a uma interrupção do Spot, um evento de alteração de estado da tarefa é gerado.

exemplo Evento de alteração no estado da tarefa

Os eventos de alteração do estado da tarefa são entregues no formato a seguir. Observe o seguinte sobre os campos:

  • O status de integridade do evento não está disponível no evento de alteração do estado da tarefa. Se você precisar do status de integridade da tarefa, poderá executar describe-tasks.

  • Quando os contêineres usam uma imagem hospedada no Amazon ECR, o campo imageDigest é devolvido.

  • Os valores dos campos createdAt, connectivityAt, pullStartedAt, startedAt, pullStoppedAt e updatedAt são carimbos de data/hora de string ISO.

  • O valor detail-type é "Alteração no estado da tarefa do ECS".

  • Quando o evento é gerado para uma tarefa interrompida, os campos stoppedReason e stoppedCode fornecem informações adicionais sobre por que a tarefa foi interrompida (por exemplo, "Iniciada pelo usuário").

Para obter mais informações sobre parâmetros do EventBridge, consulte Metadados de eventos de serviços da AWS na Referência de eventos do Amazon EventBridge.

Para obter informações sobre como configurar uma regra de evento do Amazon EventBridge que captura apenas eventos de tarefa em que a execução da tarefa foi interrompida porque um de seus contêineres essenciais foi encerrado, consulte Enviar alertas do Amazon Simple Notification Service de eventos de tarefa interrompida do Amazon ECS

{ "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 } }

A seguir está um exemplo de um evento de alteração no estado uma tarefa para o tipo de execução do 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 } }