Eventos de cambio de estado de tarea de Amazon ECS - Amazon Elastic Container Service

Eventos de cambio de estado de tarea de Amazon ECS

Los siguientes escenarios provocan eventos de cambio de estado de la tarea:

Puede llamar a las operaciones StartTask, RunTask o StopTask de la API, ya sea directamente o con la AWS Management Console, la AWS CLI o los SDK.

Comenzar o parar tareas crea nuevos recursos de tareas o modifica el estado de los recursos de tarea existentes.

El programador de servicio de Amazon ECS comienza o detiene una tarea.

Comenzar o parar tareas crea nuevos recursos de tareas o modifica el estado de los recursos de tarea existentes.

El agente de contenedor de Amazon ECS llama a la operación SubmitTaskStateChange de la API.

En el caso del tipo de lanzamiento de Amazon EC2, el agente de contenedor de Amazon ECS supervisa el estado de las tareas en las instancias de contenedor. El agente de contenedor de Amazon ECS informa de los cambios de estado. Los cambios de estado pueden incluir cambios de PENDING a RUNNING o de RUNNING a STOPPED.

La cancelación del registro de la instancia de contenedor subyacente se fuerza con la operación DeregisterContainerInstance de la API y la marca force, ya sea directamente o con la AWS Management Console o los SDK.

La anulación del registro de una instancia de contenedor cambia el estado de la instancia de contenedor y el estado de conexión del agente de contenedor de Amazon ECS. Si las tareas se ejecutan en la instancia de contenedor, se debe establecer la marca force para permitir la cancelación del registro. Esto para todas las tareas en la instancia.

La instancia de contenedor subyacente se para o se termina.

Cuando se para o se termina una instancia de contenedor, las tareas que se estaban ejecutando en la misma pasan al estado STOPPED.

Un contenedor en la tarea cambia de estado.

El agente de contenedor de Amazon ECS monitorea el estado de los contenedores dentro de las tareas. Por ejemplo, si un contenedor que se ejecuta dentro de una tarea se detiene, este cambio de estado del contenedor genera un evento.

Una tarea que utiliza el proveedor de capacidad de Fargate Spot recibe un aviso de terminación.

Cuando una tarea utiliza el proveedor de capacidad de FARGATE_SPOT y se detiene debido a una interrupción del punto de acceso, se genera un evento de cambio de estado de la tarea.

ejemplo Evento de cambio de estado de tarea

Los eventos de cambio de estado de tarea se entregan en el siguiente formato. La sección detail siguiente se asemeja al objeto Task que se devuelve de una operación de la API DescribeTasks en la Referencia de la API Amazon Elastic Container Service. Si sus contenedores utilizan una imagen alojada con Amazon ECR, se devuelve el campo imageDigest.

nota

Los valores de los campos createdAt, connectivityAt, pullStartedAt, startedAt, pullStoppedAt y updatedAt son marcas de tiempo UNIX en la respuesta de una acción DescribeTasks, mientras que en el evento de cambio de estado de tarea son marcas de tiempo de cadena ISO.

Para obtener más información acerca de los parámetros de EventBridge, consulte Metadatos de eventos de servicio deAWS en la Guía del usuario de Amazon EventBridge.

Para obtener información sobre cómo configurar una regla de eventos de Amazon EventBridge que solo captura eventos de tarea en los que se ha parado la ejecución de la tarea porque se ha terminado uno de sus contenedores esenciales, consulte Envío de alertas de Amazon Simple Notification Service para eventos de tareas detenidas de Amazon ECS

{ "version": "0", "id": "3317b2af-7005-947d-b652-f55e762e571a", "detail-type": "ECS Task State Change", "source": "aws.ecs", "account": "111122223333", "time": "2020-01-23T17:57:58Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:task/FargateCluster/c13b4cb40f1f4fe4a2971f76ae5a47ad" ], "detail": { "attachments": [ { "id": "1789bcae-ddfb-4d10-8ebe-8ac87ddba5b8", "type": "eni", "status": "ATTACHED", "details": [ { "name": "subnetId", "value": "subnet-abcd1234" }, { "name": "networkInterfaceId", "value": "eni-abcd1234" }, { "name": "macAddress", "value": "0a:98:eb:a7:29:ba" }, { "name": "privateIPv4Address", "value": "10.0.0.139" } ] } ], "availabilityZone": "us-west-2c", "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/FargateCluster", "containers": [ { "containerArn": "arn:aws:ecs:us-west-2:111122223333:container/cf159fd6-3e3f-4a9e-84f9-66cbe726af01", "lastStatus": "RUNNING", "name": "FargateApp", "image": "111122223333.dkr.ecr.us-west-2.amazonaws.com/hello-repository:latest", "imageDigest": "sha256:74b2c688c700ec95a93e478cdb959737c148df3fbf5ea706abe0318726e885e6", "runtimeId": "ad64cbc71c7fb31c55507ec24c9f77947132b03d48d9961115cf24f3b7307e1e", "taskArn": "arn:aws:ecs:us-west-2:111122223333:task/FargateCluster/c13b4cb40f1f4fe4a2971f76ae5a47ad", "networkInterfaces": [ { "attachmentId": "1789bcae-ddfb-4d10-8ebe-8ac87ddba5b8", "privateIpv4Address": "10.0.0.139" } ], "cpu": "0" } ], "createdAt": "2020-01-23T17:57:34.402Z", "launchType": "FARGATE", "cpu": "256", "memory": "512", "desiredStatus": "RUNNING", "group": "family:sample-fargate", "lastStatus": "RUNNING", "overrides": { "containerOverrides": [ { "name": "FargateApp" } ] }, "connectivity": "CONNECTED", "connectivityAt": "2020-01-23T17:57:38.453Z", "pullStartedAt": "2020-01-23T17:57:52.103Z", "startedAt": "2020-01-23T17:57:58.103Z", "pullStoppedAt": "2020-01-23T17:57:55.103Z", "updatedAt": "2020-01-23T17:57:58.103Z", "taskArn": "arn:aws:ecs:us-west-2:111122223333:task/FargateCluster/c13b4cb40f1f4fe4a2971f76ae5a47ad", "taskDefinitionArn": "arn:aws:ecs:us-west-2:111122223333:task-definition/sample-fargate:1", "version": 4, "platformVersion": "1.3.0" } }