

# Endpoint de metadados de tarefas do Amazon ECS versão 4
<a name="task-metadata-endpoint-v4"></a>

O agente de contêiner do Amazon ECS injeta uma variável de ambiente em cada contêiner, conhecida como *endpoint de metadados de tarefas*, que fornece vários metadados de tarefas e [dados estatísticos do Docker](https://docs.docker.com/engine/api/v1.30/#operation/ContainerStats) ao contêiner.

Os metadados de tarefas os dados estatísticos de taxa de rede são enviados para o CloudWatch Container Insights e podem ser visualizados no Console de gerenciamento da AWS. Para obter mais informações, consulte [Monitorar contêineres do Amazon ECS utilizando o Container Insights com observabilidade aprimorada](cloudwatch-container-insights.md).

**nota**  
O Amazon ECS fornece versões anteriores do endpoint de metadados de tarefas. Para evitar a necessidade de criar novas versões de endpoint de metadados de tarefas no futuro, os metadados adicionais podem ser adicionados à saída da versão 4. Não removeremos quaisquer metadados existentes nem alteraremos os nomes dos campos de metadados.

A variável de ambiente é injetada por padrão nos contêineres das tarefas do Amazon ECS inicializadas em instâncias do Linux do Amazon EC2 que estão executando pelo menos a versão `1.39.0` do agente de contêiner do Amazon ECS. Para instâncias do Windows do Amazon EC2 que usam o modo de rede `awsvpc`, o agente de contêiner do Amazon ECS deve ter pelo menos a versão `1.54.0`. Para obter mais informações, consulte [Gerenciamento de instâncias de contêiner do Linux no Amazon ECS](manage-linux.md).

**nota**  
É possível adicionar suporte a esse recurso em instâncias do Amazon EC2 usando versões mais antigas do agente de contêiner do Amazon ECS atualizando o agente para a versão mais recente. Para obter mais informações, consulte [Atualizar o agente de contêiner do Amazon ECS](ecs-agent-update.md).

Para obter exemplos de saída de metadados de tarefas, consulte [Exemplos de metadados de tarefas v4 no Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-metadata-endpoint-v4-examples.html).

## Caminhos do endpoint de metadados de tarefas versão 4
<a name="task-metadata-endpoint-v4-paths"></a>

Os seguintes caminhos de endpoints de metadados de tarefas estão disponíveis para contêineres.

`${ECS_CONTAINER_METADATA_URI_V4}`  
Esse caminho retorna metadados para o contêiner.

`${ECS_CONTAINER_METADATA_URI_V4}/task`  
Esse caminho retorna 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 JSON para metadados de tarefas v4 no Amazon ECS](task-metadata-endpoint-v4-response.md).

`${ECS_CONTAINER_METADATA_URI_V4}/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`. Todos os erros recebidos ao serem recuperados os metadados da etiqueta serão incluídos no campo `Errors` da resposta.  
O campo `Errors` existe apenas na resposta para tarefas hospedadas em instâncias do Linux do Amazon EC2 executando pelo menos a versão `1.50.0` do agente de contêiner. Para instâncias do Windows do Amazon EC2 que usam o modo de rede `awsvpc`, o agente de contêiner do Amazon ECS deve ter pelo menos a versão `1.54.0`  
Esse endpoint requer a permissão `ecs.ListTagsForResource`.
Ao usar o endpoint `${ECS_CONTAINER_METADATA_URI_V4}/taskWithTags`, esteja ciente de que cada chamada faz até duas solicitações de API para `ecs:ListTagsForResource` (uma para tags de instâncias de contêineres e outra para tags de tarefas) e que qualquer contêiner sidecar na tarefa pode fazer essas chamadas em seu nome. Chamadas frequentes de endpoint podem resultar no controle de utilização de API.  
Considere implementar estratégias de armazenamento em cache ou de processamento em lote para reduzir a frequência das chamadas, especialmente em aplicações de alto tráfego, e depurar problemas de controle de utilização de API usando o AWS CloudTrail. Para obter informações sobre os limites de controles de utilização para a API `ListTagsForResource`, consulte [Request throttling for the Amazon ECS API](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/request-throttling.html) na *Referência de APIs do Amazon Elastic Container Service*. Para obter informações sobre como depurar chamadas de API do Amazon ECS usando o AWS CloudTrail, consulte [Registro em log das chamadas de API do Amazon ECS usando o AWS CloudTrail](logging-using-cloudtrail.md).

`${ECS_CONTAINER_METADATA_URI_V4}/stats`  
Esse caminho retorna dados estatísticos do Docker para o contêiner específico. Para obter mais informações sobre cada uma das estatísticas retornadas, consulte [ContainerStats](https://docs.docker.com/engine/api/v1.30/#operation/ContainerStats) na documentação da API do Docker.  
Para tarefas do Amazon ECS que usam o modo de rede `awsvpc` ou `bridge` hospedado em instâncias do Linux do Amazon EC2 executando pelo menos a versão `1.43.0` do agente de contêiner, haverá dados estatísticos adicionais de taxa de rede incluídos na resposta. Para todas as outras tarefas, a resposta só incluirá os dados estatísticos de rede cumulativos.

`${ECS_CONTAINER_METADATA_URI_V4}/task/stats`  
Esse caminho retorna os dados estatísticos do Docker para todos os contêineres associados à tarefa. Isso pode ser usado por contêineres de arquivos associados para extrair métricas de rede. Para obter mais informações sobre cada uma das estatísticas retornadas, consulte [ContainerStats](https://docs.docker.com/engine/api/v1.30/#operation/ContainerStats) na documentação da API do Docker.  
Para tarefas do Amazon ECS que usam o modo de rede `awsvpc` ou `bridge` hospedado em instâncias do Linux do Amazon EC2 executando pelo menos a versão `1.43.0` do agente de contêiner, haverá dados estatísticos adicionais de taxa de rede incluídos na resposta. Para todas as outras tarefas, a resposta só incluirá os dados estatísticos de rede cumulativos.

# Resposta JSON para metadados de tarefas v4 no Amazon ECS
<a name="task-metadata-endpoint-v4-response"></a>

As seguintes informações são retornadas da resposta em JSON (`${ECS_CONTAINER_METADATA_URI_V4}/task`) do endpoint de metadados de tarefas. Isso inclui metadados associados à tarefa, além dos metadados de cada contêiner dentro da tarefa.

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

`ServiceName`  
O nome do serviço ao qual a tarefa pertence. Será exibido ServiceName para instâncias de contêiner do Amazon EC2 e do Amazon ECS Anywhere, se a tarefa estiver associada a um serviço.  
Os metadados `ServiceName` são incluídos somente quando é usada a versão `1.63.1` ou posterior do agente de contêiner do Amazon ECS.

`VPCID`  
O ID da VPC da instância de contêiner do Amazon EC2. Esse campo é exibido somente para instâncias do Amazon EC2.  
Os metadados `VPCID` são incluídos somente quando é usada a versão `1.63.1` ou posterior do agente de contêiner do Amazon ECS.

`TaskARN`  
O nome do 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á.  
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 (Windows) da plataforma.

`LaunchType`  
O tipo de inicialização que a tarefa está usando. Ao usar provedores de capacidade de cluster, isso indica se a tarefa está usando a infraestrutura do Fargate ou do EC2.  
Esses metadados `LaunchType` estão incluídos somente quando é usada a versão `1.45.0` ou posterior (Linux) ou 1.0.0 ou posterior (Windows) do agente de contêiner do Linux do Amazon ECS.

`Containers`  
Uma lista de metadados de contêiner para cada contêiner associado com a tarefa.    
`DockerId`  
O ID do Docker do contêiner.  
Quando você usa Fargate, o id é um hexadecimal de 32 dígitos seguido por um número de 10 dígitos.  
`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 do manifesto da imagem. Esse é o resumo que pode ser usado para extrair a imagem usando o formato `repository-url/image@sha256:digest`.  
`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.  
`LogDriver`  
O driver de log que o contêiner está usando.  
Esses metadados `LogDriver` estão incluídos somente quando é usada a versão `1.45.0` ou posterior do agente de contêiner do Linux do Amazon ECS.  
`LogOptions`  
As opções de driver de log definidas para o contêiner.  
Esses metadados `LogOptions` estão incluídos somente quando é usada a versão `1.45.0` ou posterior do agente de contêiner do Linux do Amazon ECS.  
`ContainerARN`  
O nome do recurso da Amazon (ARN) do contêiner.  
Esses metadados `ContainerARN` estão incluídos somente quando é usada a versão `1.45.0` ou posterior do agente de contêiner do Linux 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.  
`RestartCount`  
O número de vezes que um contêiner foi reiniciado.  
Os metadados de `RestartCount` são incluídos somente se uma política de reinicialização estiver habilitada para o contêiner. Para obter mais informações, consulte [Reiniciar contêineres individuais em tarefas do Amazon ECS com políticas de reinicialização de contêineres](container-restart-policy.md).

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

# Exemplos de metadados de tarefas v4 no Amazon ECS
<a name="task-metadata-endpoint-v4-examples"></a>

Os exemplos a seguir mostram exemplos de saídas de cada endpoint de metadados de tarefas.

## Exemplo de resposta de metadados de contêineres
<a name="task-metadata-endpoint-v4-example-container-metadata-response"></a>

Ao consultar o endpoint `${ECS_CONTAINER_METADATA_URI_V4}`, são retornados apenas metadados sobre o próprio contêiner. A seguir está um exemplo de saída de uma tarefa executada como parte de um serviço (MyService).

```
{
    "DockerId": "ea32192c8553fbff06c9340478a2ff089b2bb5646fb718b4ee206641c9086d66",
    "Name": "curl",
    "DockerName": "ecs-curltest-24-curl-cca48e8dcadd97805600",
    "Image": "111122223333.dkr.ecr.us-west-2.amazonaws.com/curltest:latest",
    "ImageID": "sha256:d691691e9652791a60114e67b365688d20d19940dde7c4736ea30e660d8d3553",
    "Labels": {
        "com.amazonaws.ecs.cluster": "default",
        "com.amazonaws.ecs.container-name": "curl",
        "com.amazonaws.ecs.task-arn": "arn:aws:ecs:us-west-2:111122223333:task/default/8f03e41243824aea923aca126495f665",
        "com.amazonaws.ecs.task-definition-family": "curltest",
        "com.amazonaws.ecs.task-definition-version": "24"
    },
    "DesiredStatus": "RUNNING",
    "KnownStatus": "RUNNING",
    "Limits": {
        "CPU": 10,
        "Memory": 128
    },
    "CreatedAt": "2020-10-02T00:15:07.620912337Z",
    "StartedAt": "2020-10-02T00:15:08.062559351Z",
    "Type": "NORMAL",
    "LogDriver": "awslogs",
    "LogOptions": {
        "awslogs-create-group": "true",
        "awslogs-group": "/ecs/metadata",
        "awslogs-region": "us-west-2",
        "awslogs-stream": "ecs/curl/8f03e41243824aea923aca126495f665"
    },
    "ContainerARN": "arn:aws:ecs:us-west-2:111122223333:container/0206b271-b33f-47ab-86c6-a0ba208a70a9",
    "Networks": [
        {
            "NetworkMode": "awsvpc",
            "IPv4Addresses": [
                "10.0.2.100"
            ],
            "AttachmentIndex": 0,
            "MACAddress": "0e:9e:32:c7:48:85",
            "IPv4SubnetCIDRBlock": "10.0.2.0/24",
            "PrivateDNSName": "ip-10-0-2-100.us-west-2.compute.internal",
            "SubnetGatewayIpv4Address": "10.0.2.1/24"
        }
    ]
}
```

## Exemplo de resposta de metadados de tarefas
<a name="task-metadata-endpoint-v4-example-task-metadata-response"></a>

Ao consultar o endpoint `${ECS_CONTAINER_METADATA_URI_V4}/task`, são retornados metadados sobre a tarefa da qual o contêiner faz parte, e também os metadados de cada contêiner na tarefa. Veja a seguir um exemplo de saída.

```
{
    "Cluster": "default",
    "TaskARN": "arn:aws:ecs:us-west-2:111122223333:task/default/158d1c8083dd49d6b527399fd6414f5c",
    "Family": "curltest",
    "ServiceName": "MyService",
    "Revision": "26",
    "DesiredStatus": "RUNNING",
    "KnownStatus": "RUNNING",
    "PullStartedAt": "2020-10-02T00:43:06.202617438Z",
    "PullStoppedAt": "2020-10-02T00:43:06.31288465Z",
    "AvailabilityZone": "us-west-2d",
    "VPCID": "vpc-1234567890abcdef0",
    "LaunchType": "EC2",
    "Containers": [
        {
            "DockerId": "598cba581fe3f939459eaba1e071d5c93bb2c49b7d1ba7db6bb19deeb70d8e38",
            "Name": "~internal~ecs~pause",
            "DockerName": "ecs-curltest-26-internalecspause-e292d586b6f9dade4a00",
            "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-west-2:111122223333:task/default/158d1c8083dd49d6b527399fd6414f5c",
                "com.amazonaws.ecs.task-definition-family": "curltest",
                "com.amazonaws.ecs.task-definition-version": "26"
            },
            "DesiredStatus": "RESOURCES_PROVISIONED",
            "KnownStatus": "RESOURCES_PROVISIONED",
            "Limits": {
                "CPU": 0,
                "Memory": 0
            },
            "CreatedAt": "2020-10-02T00:43:05.602352471Z",
            "StartedAt": "2020-10-02T00:43:06.076707576Z",
            "Type": "CNI_PAUSE",
            "Networks": [
                {
                    "NetworkMode": "awsvpc",
                    "IPv4Addresses": [
                        "10.0.2.61"
                    ],
                    "AttachmentIndex": 0,
                    "MACAddress": "0e:10:e2:01:bd:91",
                    "IPv4SubnetCIDRBlock": "10.0.2.0/24",
                    "PrivateDNSName": "ip-10-0-2-61.us-west-2.compute.internal",
                    "SubnetGatewayIpv4Address": "10.0.2.1/24"
                }
            ]
        },
        {
            "DockerId": "ee08638adaaf009d78c248913f629e38299471d45fe7dc944d1039077e3424ca",
            "Name": "curl",
            "DockerName": "ecs-curltest-26-curl-a0e7dba5aca6d8cb2e00",
            "Image": "111122223333.dkr.ecr.us-west-2.amazonaws.com/curltest:latest",
            "ImageID": "sha256:d691691e9652791a60114e67b365688d20d19940dde7c4736ea30e660d8d3553",
            "Labels": {
                "com.amazonaws.ecs.cluster": "default",
                "com.amazonaws.ecs.container-name": "curl",
                "com.amazonaws.ecs.task-arn": "arn:aws:ecs:us-west-2:111122223333:task/default/158d1c8083dd49d6b527399fd6414f5c",
                "com.amazonaws.ecs.task-definition-family": "curltest",
                "com.amazonaws.ecs.task-definition-version": "26"
            },
            "DesiredStatus": "RUNNING",
            "KnownStatus": "RUNNING",
            "Limits": {
                "CPU": 10,
                "Memory": 128
            },
            "CreatedAt": "2020-10-02T00:43:06.326590752Z",
            "StartedAt": "2020-10-02T00:43:06.767535449Z",
            "Type": "NORMAL",
            "LogDriver": "awslogs",
            "LogOptions": {
                "awslogs-create-group": "true",
                "awslogs-group": "/ecs/metadata",
                "awslogs-region": "us-west-2",
                "awslogs-stream": "ecs/curl/158d1c8083dd49d6b527399fd6414f5c"
            },
            "ContainerARN": "arn:aws:ecs:us-west-2:111122223333:container/abb51bdd-11b4-467f-8f6c-adcfe1fe059d",
            "Networks": [
                {
                    "NetworkMode": "awsvpc",
                    "IPv4Addresses": [
                        "10.0.2.61"
                    ],
                    "AttachmentIndex": 0,
                    "MACAddress": "0e:10:e2:01:bd:91",
                    "IPv4SubnetCIDRBlock": "10.0.2.0/24",
                    "PrivateDNSName": "ip-10-0-2-61.us-west-2.compute.internal",
                    "SubnetGatewayIpv4Address": "10.0.2.1/24"
                }
            ]
        }
    ]
}
```

## Exemplo de tarefa com resposta de metadados de tarefas
<a name="task-metadata-endpoint-v4-example-taskwithtags-metadata-response"></a>

Ao consultar o endpoint `${ECS_CONTAINER_METADATA_URI_V4}/taskWithTags`, são retornados metadados sobre a tarefa da qual o contêiner faz parte, incluindo a tarefa e as etiquetas de instância de contêiner. Veja a seguir um exemplo de saída.

```
{
    "Cluster": "default",
    "TaskARN": "arn:aws:ecs:us-west-2:111122223333:task/default/158d1c8083dd49d6b527399fd6414f5c",
    "Family": "curltest",
    "ServiceName": "MyService",
    "Revision": "26",
    "DesiredStatus": "RUNNING",
    "KnownStatus": "RUNNING",
    "PullStartedAt": "2020-10-02T00:43:06.202617438Z",
    "PullStoppedAt": "2020-10-02T00:43:06.31288465Z",
    "AvailabilityZone": "us-west-2d",
    "VPCID": "vpc-1234567890abcdef0",
    "TaskTags": {
        "tag-use": "task-metadata-endpoint-test"
    },
    "ContainerInstanceTags":{
        "tag_key":"tag_value"
    },
    "LaunchType": "EC2",
    "Containers": [
        {
            "DockerId": "598cba581fe3f939459eaba1e071d5c93bb2c49b7d1ba7db6bb19deeb70d8e38",
            "Name": "~internal~ecs~pause",
            "DockerName": "ecs-curltest-26-internalecspause-e292d586b6f9dade4a00",
            "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-west-2:111122223333:task/default/158d1c8083dd49d6b527399fd6414f5c",
                "com.amazonaws.ecs.task-definition-family": "curltest",
                "com.amazonaws.ecs.task-definition-version": "26"
            },
            "DesiredStatus": "RESOURCES_PROVISIONED",
            "KnownStatus": "RESOURCES_PROVISIONED",
            "Limits": {
                "CPU": 0,
                "Memory": 0
            },
            "CreatedAt": "2020-10-02T00:43:05.602352471Z",
            "StartedAt": "2020-10-02T00:43:06.076707576Z",
            "Type": "CNI_PAUSE",
            "Networks": [
                {
                    "NetworkMode": "awsvpc",
                    "IPv4Addresses": [
                        "10.0.2.61"
                    ],
                    "AttachmentIndex": 0,
                    "MACAddress": "0e:10:e2:01:bd:91",
                    "IPv4SubnetCIDRBlock": "10.0.2.0/24",
                    "PrivateDNSName": "ip-10-0-2-61.us-west-2.compute.internal",
                    "SubnetGatewayIpv4Address": "10.0.2.1/24"
                }
            ]
        },
        {
            "DockerId": "ee08638adaaf009d78c248913f629e38299471d45fe7dc944d1039077e3424ca",
            "Name": "curl",
            "DockerName": "ecs-curltest-26-curl-a0e7dba5aca6d8cb2e00",
            "Image": "111122223333.dkr.ecr.us-west-2.amazonaws.com/curltest:latest",
            "ImageID": "sha256:d691691e9652791a60114e67b365688d20d19940dde7c4736ea30e660d8d3553",
            "Labels": {
                "com.amazonaws.ecs.cluster": "default",
                "com.amazonaws.ecs.container-name": "curl",
                "com.amazonaws.ecs.task-arn": "arn:aws:ecs:us-west-2:111122223333:task/default/158d1c8083dd49d6b527399fd6414f5c",
                "com.amazonaws.ecs.task-definition-family": "curltest",
                "com.amazonaws.ecs.task-definition-version": "26"
            },
            "DesiredStatus": "RUNNING",
            "KnownStatus": "RUNNING",
            "Limits": {
                "CPU": 10,
                "Memory": 128
            },
            "CreatedAt": "2020-10-02T00:43:06.326590752Z",
            "StartedAt": "2020-10-02T00:43:06.767535449Z",
            "Type": "NORMAL",
            "LogDriver": "awslogs",
            "LogOptions": {
                "awslogs-create-group": "true",
                "awslogs-group": "/ecs/metadata",
                "awslogs-region": "us-west-2",
                "awslogs-stream": "ecs/curl/158d1c8083dd49d6b527399fd6414f5c"
            },
            "ContainerARN": "arn:aws:ecs:us-west-2:111122223333:container/abb51bdd-11b4-467f-8f6c-adcfe1fe059d",
            "Networks": [
                {
                    "NetworkMode": "awsvpc",
                    "IPv4Addresses": [
                        "10.0.2.61"
                    ],
                    "AttachmentIndex": 0,
                    "MACAddress": "0e:10:e2:01:bd:91",
                    "IPv4SubnetCIDRBlock": "10.0.2.0/24",
                    "PrivateDNSName": "ip-10-0-2-61.us-west-2.compute.internal",
                    "SubnetGatewayIpv4Address": "10.0.2.1/24"
                }
            ]
        }
    ]
}
```

## Exemplo de tarefa com uma resposta de metadados de erro
<a name="task-metadata-endpoint-v4-example-taskwithtags-error-metadata-response"></a>

Ao consultar o endpoint `${ECS_CONTAINER_METADATA_URI_V4}/taskWithTags`, são retornados metadados sobre a tarefa da qual o contêiner faz parte, incluindo a tarefa e as etiquetas de instância de contêiner. Se houver um erro na recuperação dos dados de marcação, o erro será retornado na resposta. Veja a seguir um exemplo de saída para quando a função do IAM associada à instância de contêiner não tem a permissão `ecs:ListTagsForResource` concedida.

```
{
    "Cluster": "default",
    "TaskARN": "arn:aws:ecs:us-west-2:111122223333:task/default/158d1c8083dd49d6b527399fd6414f5c",
    "Family": "curltest",
    "ServiceName": "MyService",
    "Revision": "26",
    "DesiredStatus": "RUNNING",
    "KnownStatus": "RUNNING",
    "PullStartedAt": "2020-10-02T00:43:06.202617438Z",
    "PullStoppedAt": "2020-10-02T00:43:06.31288465Z",
    "AvailabilityZone": "us-west-2d",
    "VPCID": "vpc-1234567890abcdef0",
    "Errors": [
        {
            "ErrorField": "ContainerInstanceTags",
            "ErrorCode": "AccessDeniedException",
            "ErrorMessage": "User: arn:aws:sts::111122223333:assumed-role/ecsInstanceRole/i-0744a608689EXAMPLE is not authorized to perform: ecs:ListTagsForResource on resource: arn:aws:ecs:us-west-2:111122223333:container-instance/default/2dd1b186f39845a584488d2ef155c131",
            "StatusCode": 400,
            "RequestId": "cd597ef0-272b-4643-9bd2-1de469870fa6",
            "ResourceARN": "arn:aws:ecs:us-west-2:111122223333:container-instance/default/2dd1b186f39845a584488d2ef155c131"
        },
        {
            "ErrorField": "TaskTags",
            "ErrorCode": "AccessDeniedException",
            "ErrorMessage": "User: arn:aws:sts::111122223333:assumed-role/ecsInstanceRole/i-0744a608689EXAMPLE is not authorized to perform: ecs:ListTagsForResource on resource: arn:aws:ecs:us-west-2:111122223333:task/default/9ef30e4b7aa44d0db562749cff4983f3",
            "StatusCode": 400,
            "RequestId": "862c5986-6cd2-4aa6-87cc-70be395531e1",
            "ResourceARN": "arn:aws:ecs:us-west-2:111122223333:task/default/9ef30e4b7aa44d0db562749cff4983f3"
        }
    ],
    "LaunchType": "EC2",
    "Containers": [
        {
            "DockerId": "598cba581fe3f939459eaba1e071d5c93bb2c49b7d1ba7db6bb19deeb70d8e38",
            "Name": "~internal~ecs~pause",
            "DockerName": "ecs-curltest-26-internalecspause-e292d586b6f9dade4a00",
            "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-west-2:111122223333:task/default/158d1c8083dd49d6b527399fd6414f5c",
                "com.amazonaws.ecs.task-definition-family": "curltest",
                "com.amazonaws.ecs.task-definition-version": "26"
            },
            "DesiredStatus": "RESOURCES_PROVISIONED",
            "KnownStatus": "RESOURCES_PROVISIONED",
            "Limits": {
                "CPU": 0,
                "Memory": 0
            },
            "CreatedAt": "2020-10-02T00:43:05.602352471Z",
            "StartedAt": "2020-10-02T00:43:06.076707576Z",
            "Type": "CNI_PAUSE",
            "Networks": [
                {
                    "NetworkMode": "awsvpc",
                    "IPv4Addresses": [
                        "10.0.2.61"
                    ],
                    "AttachmentIndex": 0,
                    "MACAddress": "0e:10:e2:01:bd:91",
                    "IPv4SubnetCIDRBlock": "10.0.2.0/24",
                    "PrivateDNSName": "ip-10-0-2-61.us-west-2.compute.internal",
                    "SubnetGatewayIpv4Address": "10.0.2.1/24"
                }
            ]
        },
        {
            "DockerId": "ee08638adaaf009d78c248913f629e38299471d45fe7dc944d1039077e3424ca",
            "Name": "curl",
            "DockerName": "ecs-curltest-26-curl-a0e7dba5aca6d8cb2e00",
            "Image": "111122223333.dkr.ecr.us-west-2.amazonaws.com/curltest:latest",
            "ImageID": "sha256:d691691e9652791a60114e67b365688d20d19940dde7c4736ea30e660d8d3553",
            "Labels": {
                "com.amazonaws.ecs.cluster": "default",
                "com.amazonaws.ecs.container-name": "curl",
                "com.amazonaws.ecs.task-arn": "arn:aws:ecs:us-west-2:111122223333:task/default/158d1c8083dd49d6b527399fd6414f5c",
                "com.amazonaws.ecs.task-definition-family": "curltest",
                "com.amazonaws.ecs.task-definition-version": "26"
            },
            "DesiredStatus": "RUNNING",
            "KnownStatus": "RUNNING",
            "Limits": {
                "CPU": 10,
                "Memory": 128
            },
            "CreatedAt": "2020-10-02T00:43:06.326590752Z",
            "StartedAt": "2020-10-02T00:43:06.767535449Z",
            "Type": "NORMAL",
            "LogDriver": "awslogs",
            "LogOptions": {
                "awslogs-create-group": "true",
                "awslogs-group": "/ecs/metadata",
                "awslogs-region": "us-west-2",
                "awslogs-stream": "ecs/curl/158d1c8083dd49d6b527399fd6414f5c"
            },
            "ContainerARN": "arn:aws:ecs:us-west-2:111122223333:container/abb51bdd-11b4-467f-8f6c-adcfe1fe059d",
            "Networks": [
                {
                    "NetworkMode": "awsvpc",
                    "IPv4Addresses": [
                        "10.0.2.61"
                    ],
                    "AttachmentIndex": 0,
                    "MACAddress": "0e:10:e2:01:bd:91",
                    "IPv4SubnetCIDRBlock": "10.0.2.0/24",
                    "PrivateDNSName": "ip-10-0-2-61.us-west-2.compute.internal",
                    "SubnetGatewayIpv4Address": "10.0.2.1/24"
                }
            ]
        }
    ]
}
```

## Exemplo de resposta de dados estatísticos de contêiner
<a name="task-metadata-endpoint-v4-example-stats-response"></a>

Ao consultar o endpoint `${ECS_CONTAINER_METADATA_URI_V4}/stats`, são retornadas métricas de rede para o contêiner. Para tarefas do Amazon ECS que usam o modo de rede `awsvpc` ou `bridge` hospedado em instâncias do Amazon EC2 executando pelo menos a versão `1.43.0` do agente de contêiner, haverá dados estatísticos adicionais de taxa de rede incluídos na resposta. Para todas as outras tarefas, a resposta só incluirá os dados estatísticos de rede cumulativos.

Veja a seguir um exemplo de saída de uma tarefa do Amazon ECS no Amazon EC2 que usa o modo de rede `bridge`.

```
{
    "read": "2020-10-02T00:51:13.410254284Z",
    "preread": "2020-10-02T00:51:12.406202398Z",
    "pids_stats": {
        "current": 3
    },
    "blkio_stats": {
        "io_service_bytes_recursive": [
            
        ],
        "io_serviced_recursive": [
            
        ],
        "io_queue_recursive": [
            
        ],
        "io_service_time_recursive": [
            
        ],
        "io_wait_time_recursive": [
            
        ],
        "io_merged_recursive": [
            
        ],
        "io_time_recursive": [
            
        ],
        "sectors_recursive": [
            
        ]
    },
    "num_procs": 0,
    "storage_stats": {
        
    },
    "cpu_stats": {
        "cpu_usage": {
            "total_usage": 360968065,
            "percpu_usage": [
                182359190,
                178608875
            ],
            "usage_in_kernelmode": 40000000,
            "usage_in_usermode": 290000000
        },
        "system_cpu_usage": 13939680000000,
        "online_cpus": 2,
        "throttling_data": {
            "periods": 0,
            "throttled_periods": 0,
            "throttled_time": 0
        }
    },
    "precpu_stats": {
        "cpu_usage": {
            "total_usage": 360968065,
            "percpu_usage": [
                182359190,
                178608875
            ],
            "usage_in_kernelmode": 40000000,
            "usage_in_usermode": 290000000
        },
        "system_cpu_usage": 13937670000000,
        "online_cpus": 2,
        "throttling_data": {
            "periods": 0,
            "throttled_periods": 0,
            "throttled_time": 0
        }
    },
    "memory_stats": {
        "usage": 1806336,
        "max_usage": 6299648,
        "stats": {
            "active_anon": 606208,
            "active_file": 0,
            "cache": 0,
            "dirty": 0,
            "hierarchical_memory_limit": 134217728,
            "hierarchical_memsw_limit": 268435456,
            "inactive_anon": 0,
            "inactive_file": 0,
            "mapped_file": 0,
            "pgfault": 4185,
            "pgmajfault": 0,
            "pgpgin": 2926,
            "pgpgout": 2778,
            "rss": 606208,
            "rss_huge": 0,
            "total_active_anon": 606208,
            "total_active_file": 0,
            "total_cache": 0,
            "total_dirty": 0,
            "total_inactive_anon": 0,
            "total_inactive_file": 0,
            "total_mapped_file": 0,
            "total_pgfault": 4185,
            "total_pgmajfault": 0,
            "total_pgpgin": 2926,
            "total_pgpgout": 2778,
            "total_rss": 606208,
            "total_rss_huge": 0,
            "total_unevictable": 0,
            "total_writeback": 0,
            "unevictable": 0,
            "writeback": 0
        },
        "limit": 134217728
    },
    "name": "/ecs-curltest-26-curl-c2e5f6e0cf91b0bead01",
    "id": "5fc21e5b015f899d22618f8aede80b6d70d71b2a75465ea49d9462c8f3d2d3af",
    "networks": {
        "eth0": {
            "rx_bytes": 84,
            "rx_packets": 2,
            "rx_errors": 0,
            "rx_dropped": 0,
            "tx_bytes": 84,
            "tx_packets": 2,
            "tx_errors": 0,
            "tx_dropped": 0
        }
    },
    "network_rate_stats": {
        "rx_bytes_per_sec": 0,
        "tx_bytes_per_sec": 0
    }
}
```

## Exemplo de resposta de dados estatísticos de tarefas
<a name="task-metadata-endpoint-v4-example-task-stats-response"></a>

Ao consultar o endpoint `${ECS_CONTAINER_METADATA_URI_V4}/task/stats`, são retornadas métricas de rede sobre a tarefa da qual o contêiner faz parte. Veja a seguir um exemplo de saída.

```
{
    "01999f2e5c6cf4df3873f28950e6278813408f281c54778efec860d0caad4854": {
        "read": "2020-10-02T00:51:32.51467703Z",
        "preread": "2020-10-02T00:51:31.50860463Z",
        "pids_stats": {
            "current": 1
        },
        "blkio_stats": {
            "io_service_bytes_recursive": [
                
            ],
            "io_serviced_recursive": [
                
            ],
            "io_queue_recursive": [
                
            ],
            "io_service_time_recursive": [
                
            ],
            "io_wait_time_recursive": [
                
            ],
            "io_merged_recursive": [
                
            ],
            "io_time_recursive": [
                
            ],
            "sectors_recursive": [
                
            ]
        },
        "num_procs": 0,
        "storage_stats": {
            
        },
        "cpu_stats": {
            "cpu_usage": {
                "total_usage": 177232665,
                "percpu_usage": [
                    13376224,
                    163856441
                ],
                "usage_in_kernelmode": 0,
                "usage_in_usermode": 160000000
            },
            "system_cpu_usage": 13977820000000,
            "online_cpus": 2,
            "throttling_data": {
                "periods": 0,
                "throttled_periods": 0,
                "throttled_time": 0
            }
        },
        "precpu_stats": {
            "cpu_usage": {
                "total_usage": 177232665,
                "percpu_usage": [
                    13376224,
                    163856441
                ],
                "usage_in_kernelmode": 0,
                "usage_in_usermode": 160000000
            },
            "system_cpu_usage": 13975800000000,
            "online_cpus": 2,
            "throttling_data": {
                "periods": 0,
                "throttled_periods": 0,
                "throttled_time": 0
            }
        },
        "memory_stats": {
            "usage": 532480,
            "max_usage": 6279168,
            "stats": {
                "active_anon": 40960,
                "active_file": 0,
                "cache": 0,
                "dirty": 0,
                "hierarchical_memory_limit": 9223372036854771712,
                "hierarchical_memsw_limit": 9223372036854771712,
                "inactive_anon": 0,
                "inactive_file": 0,
                "mapped_file": 0,
                "pgfault": 2033,
                "pgmajfault": 0,
                "pgpgin": 1734,
                "pgpgout": 1724,
                "rss": 40960,
                "rss_huge": 0,
                "total_active_anon": 40960,
                "total_active_file": 0,
                "total_cache": 0,
                "total_dirty": 0,
                "total_inactive_anon": 0,
                "total_inactive_file": 0,
                "total_mapped_file": 0,
                "total_pgfault": 2033,
                "total_pgmajfault": 0,
                "total_pgpgin": 1734,
                "total_pgpgout": 1724,
                "total_rss": 40960,
                "total_rss_huge": 0,
                "total_unevictable": 0,
                "total_writeback": 0,
                "unevictable": 0,
                "writeback": 0
            },
            "limit": 4073377792
        },
        "name": "/ecs-curltest-26-internalecspause-a6bcc3dbadfacfe85300",
        "id": "01999f2e5c6cf4df3873f28950e6278813408f281c54778efec860d0caad4854",
        "networks": {
            "eth0": {
                "rx_bytes": 84,
                "rx_packets": 2,
                "rx_errors": 0,
                "rx_dropped": 0,
                "tx_bytes": 84,
                "tx_packets": 2,
                "tx_errors": 0,
                "tx_dropped": 0
            }
        },
        "network_rate_stats": {
            "rx_bytes_per_sec": 0,
            "tx_bytes_per_sec": 0
        }
    },
    "5fc21e5b015f899d22618f8aede80b6d70d71b2a75465ea49d9462c8f3d2d3af": {
        "read": "2020-10-02T00:51:32.512771349Z",
        "preread": "2020-10-02T00:51:31.510597736Z",
        "pids_stats": {
            "current": 3
        },
        "blkio_stats": {
            "io_service_bytes_recursive": [
                
            ],
            "io_serviced_recursive": [
                
            ],
            "io_queue_recursive": [
                
            ],
            "io_service_time_recursive": [
                
            ],
            "io_wait_time_recursive": [
                
            ],
            "io_merged_recursive": [
                
            ],
            "io_time_recursive": [
                
            ],
            "sectors_recursive": [
                
            ]
        },
        "num_procs": 0,
        "storage_stats": {
            
        },
        "cpu_stats": {
            "cpu_usage": {
                "total_usage": 379075681,
                "percpu_usage": [
                    191355275,
                    187720406
                ],
                "usage_in_kernelmode": 60000000,
                "usage_in_usermode": 310000000
            },
            "system_cpu_usage": 13977800000000,
            "online_cpus": 2,
            "throttling_data": {
                "periods": 0,
                "throttled_periods": 0,
                "throttled_time": 0
            }
        },
        "precpu_stats": {
            "cpu_usage": {
                "total_usage": 378825197,
                "percpu_usage": [
                    191104791,
                    187720406
                ],
                "usage_in_kernelmode": 60000000,
                "usage_in_usermode": 310000000
            },
            "system_cpu_usage": 13975800000000,
            "online_cpus": 2,
            "throttling_data": {
                "periods": 0,
                "throttled_periods": 0,
                "throttled_time": 0
            }
        },
        "memory_stats": {
            "usage": 1814528,
            "max_usage": 6299648,
            "stats": {
                "active_anon": 606208,
                "active_file": 0,
                "cache": 0,
                "dirty": 0,
                "hierarchical_memory_limit": 134217728,
                "hierarchical_memsw_limit": 268435456,
                "inactive_anon": 0,
                "inactive_file": 0,
                "mapped_file": 0,
                "pgfault": 5377,
                "pgmajfault": 0,
                "pgpgin": 3613,
                "pgpgout": 3465,
                "rss": 606208,
                "rss_huge": 0,
                "total_active_anon": 606208,
                "total_active_file": 0,
                "total_cache": 0,
                "total_dirty": 0,
                "total_inactive_anon": 0,
                "total_inactive_file": 0,
                "total_mapped_file": 0,
                "total_pgfault": 5377,
                "total_pgmajfault": 0,
                "total_pgpgin": 3613,
                "total_pgpgout": 3465,
                "total_rss": 606208,
                "total_rss_huge": 0,
                "total_unevictable": 0,
                "total_writeback": 0,
                "unevictable": 0,
                "writeback": 0
            },
            "limit": 134217728
        },
        "name": "/ecs-curltest-26-curl-c2e5f6e0cf91b0bead01",
        "id": "5fc21e5b015f899d22618f8aede80b6d70d71b2a75465ea49d9462c8f3d2d3af",
        "networks": {
            "eth0": {
                "rx_bytes": 84,
                "rx_packets": 2,
                "rx_errors": 0,
                "rx_dropped": 0,
                "tx_bytes": 84,
                "tx_packets": 2,
                "tx_errors": 0,
                "tx_dropped": 0
            }
        },
        "network_rate_stats": {
            "rx_bytes_per_sec": 0,
            "tx_bytes_per_sec": 0
        }
    }
}
```