Versión 2 del punto de conexión de los metadatos de tareas de Amazon ECS - Amazon Elastic Container Service

Versión 2 del punto de conexión de los metadatos de tareas de Amazon ECS

importante

El punto de conexión de la versión 2 de los metadatos de la tarea ya no se mantiene activamente. Le recomendamos que actualice el punto de conexión de metadatos de la tarea versión 4 para obtener la información más reciente del punto de conexión de metadatos. Para obtener más información, consulte Versión 4 del punto de conexión de metadatos de tareas de Amazon ECS.

A partir de la versión 1.17.0 del agente de contenedor de Amazon ECS, están disponibles diversos metadatos de tarea y estadísticas de Docker para las tareas que utilizan el modo de red awsvpc en un punto de enlace HTTP proporcionado por el agente de contenedor de Amazon ECS.

Todos los contenedores que pertenecen a las tareas que se lanzaron con el modo de red awsvpc reciben una dirección IPv4 local dentro de un rango de direcciones local de enlace predefinido. Cuando un contenedor consulta el punto de enlace de metadatos, el agente de contenedor de Amazon ECS determina a qué tarea pertenece el contenedor en función de su dirección IP única y de los metadatos y estadísticas que se muestran para dicha tarea.

Habilitación de metadatos de tareas

La característica de versión 2 de metadatos de tarea está habilitada de forma predeterminada para lo siguiente:

  • Tareas que utilizan el tipo de lanzamiento de Fargate que utiliza la versión 1.1.0 de la plataforma o una posterior. Para obtener más información, consulte Versiones de la plataforma Fargate para Amazon ECS.

  • Tareas que utilizan el tipo de lanzamiento de EC2 y que también utilizan el modo de red awsvpc y se lanzan en una infraestructura de Linux de Amazon EC2 que ejecuta la versión 1.17.0 del agente de contenedor de Amazon ECS como mínimo o en una infraestructura de Windows de Amazon EC2 que ejecuta la versión 1.54.0 del agente de contenedor de Amazon ECS como mínimo. Para obtener más información, consulte Administración de instancias de contenedor de Linux de Amazon ECS.

Puede añadir soporte para esta característica en instancias de contenedor anteriores actualizando el agente a la versión más reciente. Para obtener más información, consulte Actualización del agente de contenedor de Amazon ECS.

Rutas de punto de enlace de metadatos de tareas

Los siguientes puntos de enlace de API están disponibles para los contenedores:

169.254.170.2/v2/metadata

Este punto de enlace devuelve metadatos JSON para la tarea, incluida una lista de los nombres e ID del contenedor de todos los contenedores asociados con la tarea. Para obtener más información sobre la respuesta de este punto de enlace, consulte Respuesta JSON de metadatos de tareas.

169.254.170.2/v2/metadata/<container-id>

Este punto de enlace devuelve metadatos JSON para el ID de contenedor de Docker especificado.

169.254.170.2/v2/metadata/taskWithTags

Esta ruta muestra los metadatos de la tarea incluidos en el punto de enlace /task, además de en las etiquetas de las instancias de contenedor y las tareas que se pueden recuperar mediante la API ListTagsForResource.

169.254.170.2/v2/stats

Este punto de enlace devuelve JSON de estadísticas de Docker de todos los contenedores asociados con la tarea. Para obtener más información acerca de cada una de las estadísticas devueltas, consulte ContainerStats en la documentación del API de Docker.

169.254.170.2/v2/stats/<container-id>

Este punto de enlace devuelve JSON de estadísticas de Docker para el ID de contenedor de Docker especificado. Para obtener más información acerca de cada una de las estadísticas devueltas, consulte ContainerStats en la documentación del API de Docker.

Respuesta JSON de metadatos de tareas

La siguiente información se devuelve desde la respuesta de JSON (169.254.170.2/v2/metadata) de punto de enlace de metadatos de tarea.

Cluster

El nombre de recurso de Amazon (ARN) o el nombre corto del clúster de Amazon ECS al que pertenece la tarea.

TaskARN

Nombre de recurso de Amazon (ARN) de la tarea al que pertenece el contenedor.

Family

La familia de la definición de tareas de Amazon ECS para la tarea.

Revision

La revisión de la definición de tareas de Amazon ECS para la tarea.

DesiredStatus

El estado deseado para la tarea de Amazon ECS.

KnownStatus

El estado conocido para la tarea de Amazon ECS.

Limits

Los límites de recursos especificados en el nivel de tarea, por ejemplo, CPU (expresado en vCPU) y memoria. Este parámetro se omite si no se definen límites de recurso.

PullStartedAt

La marca temporal del momento en que comenzó la primera extracción de la imagen del contenedor.

PullStoppedAt

La marca temporal del momento en que finalizó la última extracción de la imagen del contenedor.

AvailabilityZone

La zona de disponibilidad donde está la tarea.

nota

Los metadatos de la zona de disponibilidad solo están disponibles para las tareas de Fargate que utilicen la versión 1.4 o posterior (Linux) o 1.0.0 o posterior (Windows) de la plataforma.

Containers

Una lista de metadatos de contenedor para cada contenedor asociado con la tarea.

DockerId

El ID de Docker para el contenedor.

Name

El nombre del contenedor tal y como se especifica en la definición de tarea.

DockerName

El nombre del contenedor suministrado a Docker. El agente de contenedor de Amazon ECS genera un nombre único para el contenedor a fin de evitar conflictos de nombre cuando se ejecutan en una sola instancia varias copias de la misma definición de tareas.

Image

La imagen para el contenedor.

ImageID

El resumen SHA-256 para la imagen.

Ports

Los puertos expuestos para el contenedor. Este parámetro se omite si no hay puertos expuestos.

Labels

Cualquier etiqueta aplicada al contenedor. Este parámetro se omite si no hay etiquetas aplicadas.

DesiredStatus

El estado deseado para el contenedor procedente de Amazon ECS.

KnownStatus

El estado conocido para el contenedor procedente de Amazon ECS.

ExitCode

El código de salida para el contenedor. Este parámetro se omite si el contenedor no ha salido.

Limits

Los límites de recursos especificados en el nivel de contenedor, por ejemplo, CPU (expresado en unidades de CPU) y memoria. Este parámetro se omite si no se definen límites de recurso.

CreatedAt

La marca de hora para cuando el contenedor se creó. Este parámetro se omite si el contenedor no ha se ha creado aún.

StartedAt

La marca de hora para cuando el contenedor se inició. Este parámetro se omite si el contenedor no ha se ha iniciado aún.

FinishedAt

La marca de hora para cuando el contenedor se detuvo. Este parámetro se omite si el contenedor no ha se ha detenido aún.

Type

El tipo del contenedor. Los contenedores que se especifican en su definición de tarea son de tipo NORMAL. Puede hacer caso omiso de otros tipos de contenedores que utiliza el agente de contenedor de Amazon ECS para el aprovisionamiento de recursos para tareas internas.

Networks

La información de red del contenedor, como la dirección IP y el modo de red. Este parámetro se omite si no se define ninguna información de red.

ClockDrift

La información sobre la diferencia entre la hora de referencia y la hora del sistema. Esto se aplica al sistema operativo Linux. Esta capacidad utiliza el Servicio de sincronización temporal de Amazon para medir la precisión del reloj y proporcionar el límite de error de reloj de los contenedores. Para más información, consulte Set the time for your Linux instance en la Guía del usuario de Amazon EC2 para instancias de Linux.

ReferenceTime

La base de la precisión del reloj. Amazon ECS utiliza el estándar global de hora universal coordinada (UTC) a través de NTP, por ejemplo 2021-09-07T16:57:44Z.

ClockErrorBound

La medida del error de reloj, definida como el desplazamiento a UTC. Este error es la diferencia en milisegundos entre la hora de referencia y la hora del sistema.

ClockSynchronizationStatus

Indica si el intento de sincronización más reciente entre la hora del sistema y la hora de referencia se ha realizado correctamente.

Los valores válidos son SYNCHRONIZED y NOT_SYNCHRONIZED.

ExecutionStoppedAt

La marca temporal para cuando el DesiredStatus de la tarea pasó a STOPPED. Esto ocurre cuando un contenedor esencial pasa a STOPPED.

Ejemplo de respuesta de metadatos de las tareas

La siguiente respuesta JSON es para una tarea de contenedor único.

{ "Cluster": "default", "TaskARN": "arn:aws:ecs:us-east-2:012345678910:task/9781c248-0edd-4cdb-9a93-f63cb662a5d3", "Family": "nginx", "Revision": "5", "DesiredStatus": "RUNNING", "KnownStatus": "RUNNING", "Containers": [ { "DockerId": "731a0d6a3b4210e2448339bc7015aaa79bfe4fa256384f4102db86ef94cbbc4c", "Name": "~internal~ecs~pause", "DockerName": "ecs-nginx-5-internalecspause-acc699c0cbf2d6d11700", "Image": "amazon/amazon-ecs-pause:0.1.0", "ImageID": "", "Labels": { "com.amazonaws.ecs.cluster": "default", "com.amazonaws.ecs.container-name": "~internal~ecs~pause", "com.amazonaws.ecs.task-arn": "arn:aws:ecs:us-east-2:012345678910:task/9781c248-0edd-4cdb-9a93-f63cb662a5d3", "com.amazonaws.ecs.task-definition-family": "nginx", "com.amazonaws.ecs.task-definition-version": "5" }, "DesiredStatus": "RESOURCES_PROVISIONED", "KnownStatus": "RESOURCES_PROVISIONED", "Limits": { "CPU": 0, "Memory": 0 }, "CreatedAt": "2018-02-01T20:55:08.366329616Z", "StartedAt": "2018-02-01T20:55:09.058354915Z", "Type": "CNI_PAUSE", "Networks": [ { "NetworkMode": "awsvpc", "IPv4Addresses": [ "10.0.2.106" ] } ] }, { "DockerId": "43481a6ce4842eec8fe72fc28500c6b52edcc0917f105b83379f88cac1ff3946", "Name": "nginx-curl", "DockerName": "ecs-nginx-5-nginx-curl-ccccb9f49db0dfe0d901", "Image": "nrdlngr/nginx-curl", "ImageID": "sha256:2e00ae64383cfc865ba0a2ba37f61b50a120d2d9378559dcd458dc0de47bc165", "Labels": { "com.amazonaws.ecs.cluster": "default", "com.amazonaws.ecs.container-name": "nginx-curl", "com.amazonaws.ecs.task-arn": "arn:aws:ecs:us-east-2:012345678910:task/9781c248-0edd-4cdb-9a93-f63cb662a5d3", "com.amazonaws.ecs.task-definition-family": "nginx", "com.amazonaws.ecs.task-definition-version": "5" }, "DesiredStatus": "RUNNING", "KnownStatus": "RUNNING", "Limits": { "CPU": 512, "Memory": 512 }, "CreatedAt": "2018-02-01T20:55:10.554941919Z", "StartedAt": "2018-02-01T20:55:11.064236631Z", "Type": "NORMAL", "Networks": [ { "NetworkMode": "awsvpc", "IPv4Addresses": [ "10.0.2.106" ] } ] } ], "PullStartedAt": "2018-02-01T20:55:09.372495529Z", "PullStoppedAt": "2018-02-01T20:55:10.552018345Z", "AvailabilityZone": "us-east-2b" }