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 Dockerawsvpc
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ão1.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 APIListTagsForResource
. 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
eNOT_SYNCHRONIZED
.
ExecutionStoppedAt
-
O time stamp de quando o
DesiredStatus
da tarefa mudou paraSTOPPED
. Isso ocorre quando um contêiner essencial muda paraSTOPPED
.
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" }