Endpoint de metadados de tarefas do Amazon ECS versão 2 - Amazon Elastic Container Service

Endpoint de metadados de tarefas do Amazon ECS versão 2

Importante

O endpoint da versão 2 dos metadados da tarefa não está mais sendo mantido ativamente. Recomendamos que você atualize o endpoint versão 4 de metadados da tarefa para obter as informações mais recentes do endpoint de metadados. Para ter mais informações, consulte Endpoint de metadados de tarefas do Amazon ECS versão 4.

A partir da versão 1.17.0 do agente de contêiner do Amazon ECS, vários metadados de tarefas e dados estatísticos do Docker estão disponíveis para tarefas que usam o modo de rede awsvpc em um endpoint HTTP fornecido pelo agente de contêiner do Amazon ECS.

Todos os contêineres que pertencem a tarefas que são executadas no modo de rede awsvpc recebem um endereço IPv4 local dentro de um intervalo pré-definido de endereços locais de link. Quando um contêiner consulta o endpoint de metadados, o agente de contêiner do Amazon ECS pode determinar a qual tarefa o contêiner pertence com base no seu endereço IP exclusivo, e são retornados metadados e dados estatísticos dessa tarefa.

Habilitar metadados de tarefas

O recurso dos metadados de tarefas versão 2 é ativado por padrão para o seguinte:

  • Tarefas que usam o tipo de inicialização do Fargate e a versão v1.1.0 ou posterior da plataforma. Para ter mais informações, consulte Versões da plataforma do Fargate para o Amazon ECS.

  • Tarefas que usam o tipo de inicialização do EC2 que também usam o modo de rede awsvpc são iniciadas na infraestrutura do Linux do Amazon EC2 executando pelo menos a versão 1.17.0 do agente de contêiner do Amazon ECS ou na infraestrutura do Windows do Amazon EC2 executando pelo menos a versão 1.54.0 do agente de contêiner do Amazon ECS. Para ter mais informações, consulte Gerenciamento de instâncias de contêiner do Linux no Amazon ECS.

É possível adicionar suporte a esse recurso nas instâncias de contêiner mais antigas atualizando o agente para a versão mais recente. Para ter mais informações, consulte Atualizar o agente de contêiner do Amazon ECS.

Caminhos do endpoint de metadados de tarefas

Os seguintes endpoints de API estão disponíveis para os contêineres:

169.254.170.2/v2/metadata

Esse endpoint retorna o JSON de metadados para a tarefa, incluindo uma lista dos nomes e IDs de todos os contêineres associados à tarefa. Para obter mais informações sobre a resposta para esse endpoint, consulte Resposta do JSON de metadados de tarefas.

169.254.170.2/v2/metadata/<container-id>

Esse endpoint retorna o JSON de metadados para o ID de contêiner do Docker especificado.

169.254.170.2/v2/metadata/taskWithTags

Esse caminho retorna os metadados para a tarefa incluída no endpoint /task além das etiquetas de tarefa e de instância de contêiner que podem ser recuperadas usando a API ListTagsForResource.

169.254.170.2/v2/stats

Esse endpoint retorna o JSON de estatísticas do Docker para todos os contêineres associados à tarefa. Para obter mais informações sobre cada uma das estatísticas retornadas, consulte ContainerStats na documentação da API do Docker.

169.254.170.2/v2/stats/<container-id>

Esse endpoint retorna o JSON de estatísticas do Docker para o ID de contêiner do Docker especificado. Para obter mais informações sobre cada uma das estatísticas retornadas, consulte ContainerStats na documentação da API do Docker.

Resposta do JSON de metadados de tarefas

As seguintes informações são retornadas da resposta em JSON (169.254.170.2/v2/metadata) do endpoint de metadados de tarefas.

Cluster

O nome do recurso da Amazon (ARN) ou nome curto do cluster do Amazon ECS ao qual a tarefa pertence.

TaskARN

O nome de recurso da Amazon (ARN) da tarefa à qual o contêiner pertence.

Family

A família da definição de tarefa do Amazon ECS para a tarefa.

Revision

A revisão da definição de tarefa do Amazon ECS para a tarefa.

DesiredStatus

O status desejado para a tarefa do Amazon ECS.

KnownStatus

O status conhecido para a tarefa do Amazon ECS.

Limits

Os limites de recursos especificados no nível da tarefa, como CPU (expresso em vCPUs) e memória. Esse parâmetro será omitido se não houver nenhum limite de recurso definido.

PullStartedAt

O timestamp de quando começou a primeira extração de imagem do contêiner.

PullStoppedAt

O timestamp de quando a última extração de imagem do contêiner terminou.

AvailabilityZone

A zona de disponibilidade em que a tarefa está.

nota

Os metadados da zona de disponibilidade estão disponíveis apenas para tarefas do Fargate que usam a versão 1.4 ou posterior (Linux) ou 1.0.0 ou posterior (Windows) da plataforma.

Containers

Uma lista de metadados de contêiner para cada contêiner associado com a tarefa.

DockerId

O ID do Docker do contêiner.

Name

O nome do contêiner, conforme especificado na definição da tarefa.

DockerName

O nome do contêiner fornecido para o Docker. O agente de contêiner do Amazon ECS gera um nome exclusivo para o contêiner para evitar colisões de nomes quando várias cópias da mesma definição de tarefa são executadas em uma única instância.

Image

A imagem para o contêiner.

ImageID

O resumo SHA-256 para a imagem.

Ports

Todas as portas expostas para o contêiner. Esse parâmetro será omitido se não houver portas expostas.

Labels

Todos os rótulos aplicados ao contêiner. Esse parâmetro será omitido se não houver rótulos aplicados.

DesiredStatus

O status desejado para o contêiner do Amazon ECS.

KnownStatus

O status conhecido para o contêiner do Amazon ECS.

ExitCode

O código de saída para o contêiner. Esse parâmetro é omitido se o contêiner não foi encerrado.

Limits

Os limites de recursos especificados no nível do contêiner, como CPU (expresso em unidades de CPU) e memória. Esse parâmetro será omitido se não houver nenhum limite de recurso definido.

CreatedAt

O time stamp de quando o contêiner foi criado. Esse parâmetro será omitido se o contêiner ainda não tiver sido criado.

StartedAt

O time stamp de quando o contêiner foi iniciado. Esse parâmetro será omitido se o contêiner ainda não tiver sido iniciado.

FinishedAt

O time stamp de quando o contêiner foi interrompido. Esse parâmetro será omitido se o contêiner ainda não tiver sido interrompido.

Type

O tipo do contêiner. Os contêineres que são especificados em sua definição de tarefa são do tipo NORMAL. É possível ignorar outros tipos de contêineres, que são usados para o provisionamento de recursos de tarefas internas pelo agente de contêiner do Amazon ECS.

Networks

As informações de rede para o contêiner, como o modo de rede e o endereço IP. Esse parâmetro será omitido se não houver informações de rede definidas.

ClockDrift

A informação sobre a diferença entre o tempo de referência e a hora do sistema. Isso se aplica ao sistema operacional Linux. Esse recurso usa o Serviço de Sincronização Temporal da Amazon para medir a precisão do relógio e fornecer o erro de relógio vinculado aos contêineres. Para obter mais informações, consulte Definir a hora da instância do Linux no Guia do usuário do Amazon EC2 para instâncias do Linux.

ReferenceTime

A base da precisão do relógio. O Amazon ECS usa o padrão global Coordinated Universal Time (UTC — Tempo universal coordenado) por meio do NTP, por exemplo, 2021-09-07T16:57:44Z.

ClockErrorBound

A medida do erro do relógio, definida como o deslocamento para UTC. Esse erro é a diferença em milissegundos entre o tempo de referência e a hora do sistema.

ClockSynchronizationStatus

Indica se a tentativa de sincronização mais recente entre a hora do sistema e o horário de referência obteve êxito.

Os valores válidos são SYNCHRONIZED e NOT_SYNCHRONIZED.

ExecutionStoppedAt

O time stamp de quando o DesiredStatus da tarefa mudou para STOPPED. Isso ocorre quando um contêiner essencial muda para STOPPED.

Exemplo de resposta de metadados de tarefas

A seguinte resposta em JSON apresenta uma tarefa de contêiner ú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" }