

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# EC2 上 Amazon ECS 任務的任務中繼資料
<a name="ec2-metadata"></a>

Amazon ECS 容器代理程式提供方法來擷取各種任務中繼資料和 [Docker 統計資訊](https://docs.docker.com/reference/api/engine/version/v1.30/#tag/Container/operation/ContainerStats)。這稱為任務中繼資料端點。以下為可用的版本：
+ 任務中繼資料端點版本 4 — 為容器提供各種中繼資料和 Docker 統計資訊。也提供網路速率資料。適用於在執行 Amazon ECS 容器代理程式至少 `1.39.0` 版本的 Amazon EC2 Linux 執行個體上啟動的 Amazon ECS 任務。對於使用 `awsvpc` 網路模式的 Amazon EC2 Windows 執行個體，Amazon ECS 容器代理程式必須至少為 `1.54.0` 版。如需詳細資訊，請參閱[Amazon ECS 任務中繼資料端點第 4 版](task-metadata-endpoint-v4.md)。
+ 任務中繼資料端點版本 3 — 為容器提供各種中繼資料和 Docker 統計資訊。適用於在執行 Amazon ECS 容器代理程式至少 `1.21.0` 版本的 Amazon EC2 Linux 執行個體上啟動的 Amazon ECS 任務。對於使用 `awsvpc` 網路模式的 Amazon EC2 Windows 執行個體，Amazon ECS 容器代理程式必須至少為 `1.54.0` 版。如需詳細資訊，請參閱[Amazon ECS 任務中繼資料端點第 3 版](task-metadata-endpoint-v3.md)。
+ 任務中繼資料端點版本 2 — 適用於在執行 Amazon ECS 容器代理程式至少 `1.17.0` 版本的 Amazon EC2 Linux 執行個體上啟動的 Amazon ECS 任務。對於使用 `awsvpc` 網路模式的 Amazon EC2 Windows 執行個體，Amazon ECS 容器代理程式必須至少為 `1.54.0` 版。如需詳細資訊，請參閱[Amazon ECS 任務中繼資料端點第 2 版](task-metadata-endpoint-v2.md)。

 如果您的 Amazon ECS 任務託管在 Amazon EC2 上，或者您的任務使用 `host` 網路模式並託管在 Amazon ECS 受管執行個體上，您也可以使用[執行個體中繼資料服務 (IMDS) 端點來存取任務主機中繼資料](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)。當從託管任務的執行個體內執行時，下列命令會列出主機執行個體的 ID。

```
 curl http://169.254.169.254/latest/meta-data/instance-id
```

如果 Amazon ECS 任務以純 IPv6 組態託管在 Amazon EC2 上，您可以使用 IPv6 IMDS 端點存取任務主機中繼資料。當從託管該任務的執行個體內執行時，下列命令會透過 IPv6 列出主機執行個體的 ID。

```
 curl http://[fd00:ec2::254]/latest/meta-data/instance-id
```

若要存取 IPv6 IMDS 端點，請在容器執行個體上啟用 IPv6 IMDS 端點，並使用所選 SDK 的 IMDS 憑證提供者將中繼資料服務端點模式設定為 `IPv6`。如需有關為容器執行個體啟用 IPv6 IMDS 端點的詳細資訊，請參閱 *Amazon EC2 User Guide* 中的 [Configure the Instance Metadata Service options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html)。如需有關 SDK 的 IMDS 憑證提供者的詳細資訊，請參閱 *AWS SDKs and Tools Reference Guide* 中的 [IMDS credential provider](https://docs.aws.amazon.com/sdkref/latest/guide/feature-imds-credentials.html)。

**注意**  
當 `awsvpcTrunking` 帳戶設定啟用後，將無法存取 IPv6 IMDS 端點。若要在啟用 `awsvpcTrunking` 後存取容器執行個體 IAM 角色憑證，您可以改為使用任務 IAM 角色。如需關於任務 IAM 角色的詳細資訊，請參閱 [Amazon ECS 任務 IAM 角色](task-iam-roles.md)。

 您可以從端點取得的資訊分為幾個類別，例如 `instance-id`。如需有關使用端點取得不同類別主機執行個體中繼資料的詳細資訊，請參閱 [Instance metadata categories](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html#instancedata-data-categories)。

# Amazon ECS 任務中繼資料端點第 4 版
<a name="task-metadata-endpoint-v4"></a>

Amazon ECS 容器代理程式會將環境變數插入到每個容器中，稱為*任務中繼資料端點*，它為容器提供各種任務中繼資料和 [Docker 統計資訊](https://docs.docker.com/engine/api/v1.30/#operation/ContainerStats)。

任務中繼資料和網路速率統計資訊會傳送至 CloudWatch Container Insights ，並可在 AWS 管理主控台中檢視。如需詳細資訊，請參閱[使用具有增強可觀測性的 Container Insights 監控 Amazon ECS](cloudwatch-container-insights.md)。

**注意**  
Amazon ECS 提供任務中繼資料端點的較早版本。為了避免未來需要建立新的任務中繼資料端點版本，可以將其他中繼資料新增至第 4 版輸出。我們不會移除任何現有中繼資料或變更中繼資料欄位名稱。

環境變數會預設插入至 Amazon ECS 任務的容器中，這些任務在執行 Amazon ECS 容器代理程式至少 `1.39.0` 版的 Amazon EC2 Linux 執行個體上啟動。對於使用 `awsvpc` 網路模式的 Amazon EC2 Windows 執行個體，Amazon ECS 容器代理程式必須至少為 `1.54.0` 版。如需詳細資訊，請參閱[Amazon ECS Linux 容器執行個體管理](manage-linux.md)。

**注意**  
使用較舊版本的 Amazon ECS 容器代理程式可在 Amazon EC2 執行個體上新增此功能的支援，方法是將代理程式更新為最新版本。如需詳細資訊，請參閱[更新 Amazon ECS 容器代理程式](ecs-agent-update.md)。

如需任務中繼資料範例輸出，請參閱 [Amazon ECS 任務中繼資料第 4 版範例](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-metadata-endpoint-v4-examples.html)。

## 任務中繼資料端點版本 4 路徑
<a name="task-metadata-endpoint-v4-paths"></a>

下列任務中繼資料端點路徑可供容器使用。

`${ECS_CONTAINER_METADATA_URI_V4}`  
此路徑傳回容器的中繼資料。

`${ECS_CONTAINER_METADATA_URI_V4}/task`  
此路徑傳回任務的中繼資料，包括與任務相關聯之所有容器的容器 ID 和名稱清單。如需此端點之回應的詳細資訊，請參閱「[Amazon ECS 任務中繼資料第 4 版 JSON 回應](task-metadata-endpoint-v4-response.md)」。

`${ECS_CONTAINER_METADATA_URI_V4}/taskWithTags`  
除了可使用 `ListTagsForResource` API 擷取的任務和容器執行個體標籤之外，此路徑還會傳回包含在 `/task` 端點內的任務的中繼資料。擷取標籤中繼資料時收到的任何錯誤都會包含在回應的 `Errors` 欄位中。  
`Errors` 欄位僅位於執行容器代理程式至少 `1.50.0` 版本的 Amazon EC2 Linux 執行個體中託管的任務回應中。對於使用 `awsvpc` 網路模式的 Amazon EC2 Windows 執行個體，Amazon ECS 容器代理程式必須至少為 `1.54.0` 版。  
此端點需要 `ecs.ListTagsForResource` 許可。
使用 `${ECS_CONTAINER_METADATA_URI_V4}/taskWithTags` 端點時，請注意每次呼叫最多會向 `ecs:ListTagsForResource` 發出兩個 API 請求 (一個用於容器執行個體標籤，另一個用於任務標籤)，並且任務中的任何邊車容器都可代您進行這些呼叫。頻繁的端點呼叫可能會導致 API 限流。  
請考慮實作快取或批次處理策略來降低呼叫頻率，尤其是在高流量應用程式中，同時使用 AWS CloudTrail對 API 限流問題進行偵錯。如需 `ListTagsForResource` API 限流限制的相關資訊，請參閱 *Amazon Elastic Container Service API Reference* 中的 [Request throttling for the Amazon ECS API](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/request-throttling.html)。如需使用 偵錯 Amazon ECS API 呼叫的詳細資訊 AWS CloudTrail，請參閱 [使用 記錄 Amazon ECS API 呼叫 AWS CloudTrail](logging-using-cloudtrail.md)。

`${ECS_CONTAINER_METADATA_URI_V4}/stats`  
此路徑傳回特定容器的 Docker 統計資訊。如需每個所傳回統計資訊的詳細資訊，請參閱 Docker API 文件中的 [ContainerStats](https://docs.docker.com/engine/api/v1.30/#operation/ContainerStats)。  
對於使用 `awsvpc` 或 `bridge` 網路模式、託管於執行容器代理程式至少 `1.43.0` 版本的 Amazon EC2 Linux 執行個體中的 Amazon ECS 任務，回應中會包含額外的網路速率統計資訊。對於所有其他任務，回應只會包含累積的網路統計資訊。

`${ECS_CONTAINER_METADATA_URI_V4}/task/stats`  
此路徑傳回與任務相關聯之所有容器的 Docker 統計資訊。附屬容器可使用該資訊來擷取網路指標。如需每個所傳回統計資訊的詳細資訊，請參閱 Docker API 文件中的 [ContainerStats](https://docs.docker.com/engine/api/v1.30/#operation/ContainerStats)。  
對於使用 `awsvpc` 或 `bridge` 網路模式、託管於執行容器代理程式至少 `1.43.0` 版本的 Amazon EC2 Linux 執行個體中的 Amazon ECS 任務，回應中會包含額外的網路速率統計資訊。對於所有其他任務，回應只會包含累積的網路統計資訊。

# Amazon ECS 任務中繼資料第 4 版 JSON 回應
<a name="task-metadata-endpoint-v4-response"></a>

任務中繼資料端點 (`${ECS_CONTAINER_METADATA_URI_V4}/task`) JSON 回應會傳回下列資訊。這包括除了任務內每個容器的中繼資料之外，與任務相關聯的中繼資料。

`Cluster`  
任務所屬 Amazon ECS 叢集的 Amazon Resource Name (ARN) 或簡短名稱。

`ServiceName`  
任務所屬的服務名稱。如果任務與服務關聯，Amazon EC2 和 Amazon ECS Anywhere 容器執行個體都會顯示 ServiceName。  
只有在使用 Amazon ECS 容器代理程式版本 `1.63.1` 或更新版本時，才包括該 `ServiceName` 中繼資料。

`VPCID`  
Amazon EC2 容器執行個體的 VPC ID。此欄位僅適用於 Amazon EC2 執行個體。  
只有在使用 Amazon ECS 容器代理程式版本 `1.63.1` 或更新版本時，才包括該 `VPCID` 中繼資料。

`TaskARN`  
容器所屬任務的 Amazon Resource Name (ARN)。

`Family`  
任務的 Amazon ECS 任務定義系列。

`Revision`  
任務的 Amazon ECS 任務定義修訂。

`DesiredStatus`  
Amazon ECS 中任務的所需狀態。

`KnownStatus`  
Amazon ECS 中任務的已知狀態。

`Limits`  
在任務層級指定的資源限制，例如 CPU (以 vCPU 表示) 和記憶體。如果未定義資源限制，則會省略此參數。

`PullStartedAt`  
第一個容器映像提取的開始時間戳記。

`PullStoppedAt`  
最後一個容器映像提取的完成時間戳記。

`AvailabilityZone`  
任務所在的可用區域。  
可用區域中繼資料僅適用於使用平台第 1.4 版或更新版本 (Linux) 或 1.0.0 (Windows) 的 Fargate 任務。

`LaunchType`  
任務使用的啟動類型。使用叢集容量提供者時，這會指出任務是使用 Fargate 還是 EC2 基礎設施。  
只有在使用 Amazon ECS Linux 容器代理程式版本 `1.45.0` 或更新版本 (Linux) 或 1.0.0 或更新版本 (Windows) 時，才包括此 `LaunchType` 中繼資料。

`Containers`  
與任務相關聯之每個容器的容器中繼資料清單。    
`DockerId`  
容器的 Docker ID。  
當您使用 Fargate 時，ID 為 32 位十六進制，後跟 10 位數字。  
`Name`  
任務定義中指定的容器名稱。  
`DockerName`  
提供給 Docker 的容器名稱。Amazon ECS 容器代理程式會產生容器的唯一名稱，以避免在單一執行個體上執行相同任務定義的多個複本時，發生名稱衝突。  
`Image`  
容器的映像。  
`ImageID`  
映像資訊清單的 SHA-256 摘要。此摘要可用於以 `repository-url/image@sha256:digest` 格式提取映像。  
`Ports`  
向容器開放的任何連接埠。如果未開放連接埠，則會省略此參數。  
`Labels`  
任何套用至容器的標籤。如果未套用標籤，則會省略此參數。  
`DesiredStatus`  
Amazon ECS 中容器的所需狀態。  
`KnownStatus`  
Amazon ECS 中容器的已知狀態。  
`ExitCode`  
容器的結束代碼。如果容器尚未結束，則會省略此參數。  
`Limits`  
在容器層級指定的資源限制，例如 CPU (以 CPU 單位表示) 和記憶體。如果未定義資源限制，則會省略此參數。  
`CreatedAt`  
容器的建立時間戳記。如果尚未建立容器，則會省略此參數。  
`StartedAt`  
容器的啟動時間戳記。如果尚未啟動容器，則會省略此參數。  
`FinishedAt`  
容器的停止時間戳記。如果尚未停止容器，則會省略此參數。  
`Type`  
容器的類型。任務定義中指定的容器類型為 `NORMAL`。您可以忽略其他容器類型，這些是 Amazon ECS 容器代理程式用來佈建內部任務資源的容器類型。  
`LogDriver`  
容器正在使用的日誌驅動程式。  
只有在使用 Amazon ECS Linux 容器代理程式版本 `1.45.0` 或更新版本時，才包括此 `LogDriver` 中繼資料。  
`LogOptions`  
為容器定義的日誌驅動程式選項。  
只有在使用 Amazon ECS Linux 容器代理程式版本 `1.45.0` 或更新版本時，才包括此 `LogOptions` 中繼資料。  
`ContainerARN`  
容器的 Amazon Resource Name (ARN)。  
只有在使用 Amazon ECS Linux 容器代理程式版本 `1.45.0` 或更新版本時，才包括此 `ContainerARN` 中繼資料。  
`Networks`  
容器的網路資訊，例如網路模式和 IP 地址。如果未定義網路資訊，則會省略此參數。  
`RestartCount`  
容器已重新啟動的次數。  
僅在容器已啟用重新啟動政策時，才會包含 `RestartCount` 中繼資料。如需詳細資訊，請參閱[使用容器重新啟動政策在 Amazon ECS 任務中重新啟動個別容器](container-restart-policy.md)。

`ExecutionStoppedAt`  
任務 `DesiredStatus` 移至 `STOPPED` 時的時間戳記。這會在基本容器移至 `STOPPED` 時發生。

# Amazon ECS 任務中繼資料第 4 版範例
<a name="task-metadata-endpoint-v4-examples"></a>

以下範例顯示來自每個任務中繼資料端點的範例輸出。

## 容器中繼資料回應範例
<a name="task-metadata-endpoint-v4-example-container-metadata-response"></a>

查詢 `${ECS_CONTAINER_METADATA_URI_V4}` 端點時，只會傳回關於容器本身的中繼資料。以下是作為服務 (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"
        }
    ]
}
```

## 範例任務中繼資料回應
<a name="task-metadata-endpoint-v4-example-task-metadata-response"></a>

查詢 `${ECS_CONTAINER_METADATA_URI_V4}/task` 端點時，除了任務內每個容器的中繼資料外，只會傳回容器所屬任務的中繼資料。以下為範例輸出。

```
{
    "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"
                }
            ]
        }
    ]
}
```

## 具有標籤中繼資料回應的任務範例
<a name="task-metadata-endpoint-v4-example-taskwithtags-metadata-response"></a>

查詢 `${ECS_CONTAINER_METADATA_URI_V4}/taskWithTags` 端點時，會傳回關於任務的中繼資料，包括任務和容器執行個體標籤。以下為範例輸出。

```
{
    "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"
                }
            ]
        }
    ]
}
```

## 具有標籤和錯誤中繼資料回應的任務範例
<a name="task-metadata-endpoint-v4-example-taskwithtags-error-metadata-response"></a>

查詢 `${ECS_CONTAINER_METADATA_URI_V4}/taskWithTags` 端點時，會傳回關於任務的中繼資料，包括任務和容器執行個體標籤。如果擷取標籤資料時發生錯誤，則會在回應中傳回錯誤。以下是與容器執行個體相關聯的 IAM 角色沒有允許 `ecs:ListTagsForResource` 許可時的輸出範例。

```
{
    "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"
                }
            ]
        }
    ]
}
```

## 容器統計資訊回應範例
<a name="task-metadata-endpoint-v4-example-stats-response"></a>

查詢 `${ECS_CONTAINER_METADATA_URI_V4}/stats` 端點時，會傳回容器的網路指標。對於使用 `awsvpc` 或 `bridge` 網路模式、託管於執行容器代理程式至少 `1.43.0` 版本的 Amazon EC2 執行個體中的 Amazon ECS 任務，回應中會包含額外的網路速率統計資訊。對於所有其他任務，回應只會包含累積的網路統計資訊。

以下是 Amazon EC2 上使用 `bridge` 網路模式的 Amazon ECS 任務的輸出範例。

```
{
    "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
    }
}
```

## 任務統計資訊回應範例
<a name="task-metadata-endpoint-v4-example-task-stats-response"></a>

查詢 `${ECS_CONTAINER_METADATA_URI_V4}/task/stats` 端點時，會傳回關於容器所屬任務的網路指標。以下為範例輸出。

```
{
    "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
        }
    }
}
```

# Amazon ECS 任務中繼資料端點第 3 版
<a name="task-metadata-endpoint-v3"></a>

**重要**  
不再積極維護任務中繼資料第 3 版端點。建議您更新任務中繼資料第 4 版端點，以取得最新的中繼資料端點資訊。如需詳細資訊，請參閱[Amazon ECS 任務中繼資料端點第 4 版](task-metadata-endpoint-v4.md)。  
如果您使用託管在 上的 Amazon ECS 任務 AWS Fargate，請參閱 [Amazon ECS 任務中繼資料端點第 3 版，以取得 Fargate 上的任務](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-metadata-endpoint-v3-fargate.html)。

從 Amazon ECS 容器代理程式 1.21.0 版開始，代理程式會將稱為 `ECS_CONTAINER_METADATA_URI` 的環境變數插入任務中的每個容器。當您查詢任務中繼資料第 3 版端點時，有各種任務中繼資料和 [Docker 統計資訊](https://docs.docker.com/reference/api/engine/version/v1.30/#tag/Container/operation/ContainerStats)可供任務使用。對於使用 `bridge` 網路模式的工作，查詢 `/stats` 端點時，可使用網路指標。

依預設，對於在平台版本 1.3.0 或更新版本上使用 Fargate 的任務，以及使用 EC2 的任務，會啟用任務中繼資料端點第 3 版功能，並在至少執行 Amazon ECS 容器代理程式 1.21.0 版的 Amazon EC2 Linux 基礎結構，或者在至少執行 Amazon ECS 容器代理程式 `1.54.0` 版的 Amazon EC2 Windows 基礎結構上啟動該功能，並使用 `awsvpc` 網路模式。如需詳細資訊，請參閱[Amazon ECS Linux 容器執行個體管理](manage-linux.md)。

您可以將代理更新為最新版本，以在舊容器執行個體上新增此功能的支援。如需詳細資訊，請參閱[更新 Amazon ECS 容器代理程式](ecs-agent-update.md)。

**重要**  
對於使用 Fargate 且平台版本低於 1.3.0 版的任務，支援任務中繼資料第 2 版端點。如需詳細資訊，請參閱[Amazon ECS 任務中繼資料端點第 2 版](task-metadata-endpoint-v2.md)。

## 任務中繼資料端點第 3 版路徑
<a name="task-metadata-endpoint-v3-paths"></a>

下列任務中繼資料端點可供容器使用：

`${ECS_CONTAINER_METADATA_URI}`  
此路徑傳回容器的 JSON 中繼資料。

`${ECS_CONTAINER_METADATA_URI}/task`  
此路徑傳回任務的中繼資料 JSON，包括與任務相關聯之所有容器的容器 ID 和名稱清單。如需此端點之回應的詳細資訊，請參閱「[Amazon ECS 任務中繼資料第 3 版 JSON 回應](task-metadata-endpoint-v3-response.md)」。

`${ECS_CONTAINER_METADATA_URI}/taskWithTags`  
除了可使用 `ListTagsForResource` API 擷取的任務和容器執行個體標籤之外，此路徑還會傳回包含在 `/task` 端點內的任務的中繼資料。

`${ECS_CONTAINER_METADATA_URI}/stats`  
此路徑傳回特定 Docker 容器的 Docker 統計資訊 JSON。如需每個所傳回統計資訊的詳細資訊，請參閱 Docker API 文件中的 [ContainerStats](https://docs.docker.com/reference/api/engine/version/v1.30/#tag/Container/operation/ContainerStats)。

`${ECS_CONTAINER_METADATA_URI}/task/stats`  
此路徑傳回與任務相關聯之所有容器的 Docker 統計資訊 JSON。如需每個所傳回統計資訊的詳細資訊，請參閱 Docker API 文件中的 [ContainerStats](https://docs.docker.com/reference/api/engine/version/v1.30/#tag/Container/operation/ContainerStats)。

# Amazon ECS 任務中繼資料第 3 版 JSON 回應
<a name="task-metadata-endpoint-v3-response"></a>

任務中繼資料端點 (`${ECS_CONTAINER_METADATA_URI}/task`) JSON 回應會傳回下列資訊。

`Cluster`  
任務所屬 Amazon ECS 叢集的 Amazon Resource Name (ARN) 或簡短名稱。

`TaskARN`  
容器所屬任務的 Amazon Resource Name (ARN)。

`Family`  
任務的 Amazon ECS 任務定義系列。

`Revision`  
任務的 Amazon ECS 任務定義修訂。

`DesiredStatus`  
Amazon ECS 中任務的所需狀態。

`KnownStatus`  
Amazon ECS 中任務的已知狀態。

`Limits`  
在任務層級指定的資源限制，例如 CPU (以 vCPU 表示) 和記憶體。如果未定義資源限制，則會省略此參數。

`PullStartedAt`  
第一個容器映像提取的開始時間戳記。

`PullStoppedAt`  
最後一個容器映像提取的完成時間戳記。

`AvailabilityZone`  
任務所在的可用區域。  
可用區域中繼資料僅適用於使用平台第 1.4 版或更新版本 (Linux) 或 1.0.0 或更新版本 (Windows) 的 Fargate 任務。

`Containers`  
與任務相關聯之每個容器的容器中繼資料清單。    
`DockerId`  
容器的 Docker ID。  
`Name`  
任務定義中指定的容器名稱。  
`DockerName`  
提供給 Docker 的容器名稱。Amazon ECS 容器代理程式會產生容器的唯一名稱，以避免在單一執行個體上執行相同任務定義的多個複本時，發生名稱衝突。  
`Image`  
容器的映像。  
`ImageID`  
映像資訊清單的 SHA-256 摘要。此摘要可用於以 `repository-url/image@sha256:digest` 格式提取映像。  
`Ports`  
向容器開放的任何連接埠。如果未開放連接埠，則會省略此參數。  
`Labels`  
任何套用至容器的標籤。如果未套用標籤，則會省略此參數。  
`DesiredStatus`  
Amazon ECS 中容器的所需狀態。  
`KnownStatus`  
Amazon ECS 中容器的已知狀態。  
`ExitCode`  
容器的結束代碼。如果容器尚未結束，則會省略此參數。  
`Limits`  
在容器層級指定的資源限制，例如 CPU (以 CPU 單位表示) 和記憶體。如果未定義資源限制，則會省略此參數。  
`CreatedAt`  
容器的建立時間戳記。如果尚未建立容器，則會省略此參數。  
`StartedAt`  
容器的啟動時間戳記。如果尚未啟動容器，則會省略此參數。  
`FinishedAt`  
容器的停止時間戳記。如果尚未停止容器，則會省略此參數。  
`Type`  
容器的類型。任務定義中指定的容器類型為 `NORMAL`。您可以忽略其他容器類型，這些是 Amazon ECS 容器代理程式用來佈建內部任務資源的容器類型。  
`Networks`  
容器的網路資訊，例如網路模式和 IP 地址。如果未定義網路資訊，則會省略此參數。

`ClockDrift`  
關於參考時間和系統時間之間差異的資訊。這適用於 Linux 作業系統。此功能使用 Amazon Time Sync Service 來衡量時鐘準確性，並提供容器的時鐘錯誤界限。如需詳細資訊，請參閱 *Amazon EC2 User Guide for Linux instances* 中的 [Set the time for your Linux instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html)。    
`ReferenceTime`  
時鐘精確度的基礎。Amazon ECS 透過 NTP 使用世界協調時間 (UTC) 的全球標準，例如 `2021-09-07T16:57:44Z`。  
`ClockErrorBound`  
時鐘誤差的測量值，定義為 UTC 的偏移。此誤差是參考時間和系統時間之間的毫秒差異。  
`ClockSynchronizationStatus`  
指出系統時間和參考時間之間最近的同步嘗試是否成功。  
有效值為 `SYNCHRONIZED` 和 ` NOT_SYNCHRONIZED`。

`ExecutionStoppedAt`  
任務 `DesiredStatus` 移至 `STOPPED` 時的時間戳記。這會在基本容器移至 `STOPPED` 時發生。

# Amazon ECS 任務中繼資料第 3 版範例
<a name="task-metadata-endpoint-v3-examples"></a>

以下範例顯示來自任務中繼資料端點的範例輸出。

## 容器中繼資料回應範例
<a name="task-metadata-endpoint-v3-example-container-metadata-response"></a>

查詢 `${ECS_CONTAINER_METADATA_URI}` 端點時，只會傳回關於容器本身的中繼資料。以下為範例輸出。

```
{
    "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"
            ]
        }
    ]
}
```

## 範例任務中繼資料回應
<a name="task-metadata-endpoint-v3-example-task-metadata-response"></a>

查詢 `${ECS_CONTAINER_METADATA_URI}/task` 端點時，只會傳回容器所屬任務的中繼資料。以下為範例輸出。

下列為單一容器任務的 JSON 回應。

```
{
  "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"
}
```

# Amazon ECS 任務中繼資料端點第 2 版
<a name="task-metadata-endpoint-v2"></a>

**重要**  
不再積極維護任務中繼資料第 2 版端點。建議您更新任務中繼資料第 4 版端點，以取得最新的中繼資料端點資訊。如需詳細資訊，請參閱[Amazon ECS 任務中繼資料端點第 4 版](task-metadata-endpoint-v4.md)。

從 Amazon ECS 容器代理程式 1.17.0 版開始，在 Amazon ECS 容器代理提供之 HTTP 端點使用 `awsvpc` 網路模式的任務，皆可使用各種任務中繼資料和 [Docker 統計資訊](https://docs.docker.com/reference/api/engine/version/v1.30/#tag/Container/operation/ContainerStats)。

屬於使用 `awsvpc` 網路模式啟動之任務的所有容器都接收預先定義連結本機地址範圍內的本機 IPv4 地址。當容器查詢中繼資料端點時，Amazon ECS 容器代理程式可以根據任務的唯一 IP 地址，判斷容器屬於哪些任務，並傳回該任務的中繼資料和統計資料。

## 啟用任務中繼資料
<a name="task-metadata-endpoint-v2-enable"></a>

**重要**  
不再積極維護任務中繼資料第 2 版端點。建議您更新任務中繼資料第 4 版端點，以取得最新的中繼資料端點資訊。如需詳細資訊，請參閱[Amazon ECS 任務中繼資料端點第 4 版](task-metadata-endpoint-v4.md)。

從 Amazon ECS 容器代理程式 1.17.0 版開始，在 Amazon ECS 容器代理提供之 HTTP 端點使用 `awsvpc` 網路模式的任務，皆可使用各種任務中繼資料和 [Docker 統計資訊](https://docs.docker.com/reference/api/engine/version/v1.30/#tag/Container/operation/ContainerStats)。

屬於使用 `awsvpc` 網路模式啟動之任務的所有容器都接收預先定義連結本機地址範圍內的本機 IPv4 地址。當容器查詢中繼資料端點時，Amazon ECS 容器代理程式可以根據任務的唯一 IP 地址，判斷容器屬於哪些任務，並傳回該任務的中繼資料和統計資料。

### 啟用任務中繼資料
<a name="task-metadata-endpoint-v2-enable"></a>

對於下列項目，預設會啟用任務中繼資料第 2 版功能：
+ 使用 Fargate 且平台版本為 1.1.0 版或更新版本的任務。如需詳細資訊，請參閱[適用於 Amazon ECS 的 Fargate 平台版本](platform-fargate.md)。
+ 使用 EC2 的任務，該任務也會使用 `awsvpc` 網路模式，且在至少執行 Amazon ECS 容器代理程式 1.17.0 版的 Amazon EC2 Linux 基礎結構上啟動，或在至少執行 `1.54.0` 版 Amazon ECS 容器代理程式的 Amazon EC2 Windows 基礎結構上啟動。如需詳細資訊，請參閱[Amazon ECS Linux 容器執行個體管理](manage-linux.md)。

您可以將代理更新為最新版本，以在舊容器執行個體上新增此功能的支援。如需詳細資訊，請參閱[更新 Amazon ECS 容器代理程式](ecs-agent-update.md)。

### 任務中繼資料端點路徑
<a name="task-metadata-endpoint-v2-paths"></a>

容器可使用下列 API 端點：

`169.254.170.2/v2/metadata`  
此端點會傳回任務的中繼資料 JSON，包括與任務相關聯之所有容器的容器 ID 和名稱清單。如需此端點之回應的詳細資訊，請參閱「[任務中繼資料 JSON 回應](#task-metadata-endpoint-v2-response)」。

`169.254.170.2/v2/metadata/<container-id>`  
此端點會傳回指定 Docker 容器 ID 的中繼資料 JSON。

`169.254.170.2/v2/metadata/taskWithTags`  
除了可使用 `ListTagsForResource` API 擷取的任務和容器執行個體標籤之外，此路徑還會傳回包含在 `/task` 端點內的任務的中繼資料。

`169.254.170.2/v2/stats`  
此端點會傳回與任務相關聯之所有容器的 Docker 統計資訊 JSON。如需每個所傳回統計資訊的詳細資訊，請參閱 Docker API 文件中的 [ContainerStats](https://docs.docker.com/reference/api/engine/version/v1.30/#tag/Container/operation/ContainerStats)。

`169.254.170.2/v2/stats/<container-id>`  
此端點會傳回指定 Docker 容器 ID 的 Docker 統計資訊 JSON。如需每個所傳回統計資訊的詳細資訊，請參閱 Docker API 文件中的 [ContainerStats](https://docs.docker.com/reference/api/engine/version/v1.30/#tag/Container/operation/ContainerStats)。

### 任務中繼資料 JSON 回應
<a name="task-metadata-endpoint-v2-response"></a>

任務中繼資料端點 (`169.254.170.2/v2/metadata`) JSON 回應會傳回下列資訊。

`Cluster`  
任務所屬 Amazon ECS 叢集的 Amazon Resource Name (ARN) 或簡短名稱。

`TaskARN`  
容器所屬任務的 Amazon Resource Name (ARN)。

`Family`  
任務的 Amazon ECS 任務定義系列。

`Revision`  
任務的 Amazon ECS 任務定義修訂。

`DesiredStatus`  
Amazon ECS 中任務的所需狀態。

`KnownStatus`  
Amazon ECS 中任務的已知狀態。

`Limits`  
在任務層級指定的資源限制，例如 CPU (以 vCPU 表示) 和記憶體。如果未定義資源限制，則會省略此參數。

`PullStartedAt`  
第一個容器映像提取的開始時間戳記。

`PullStoppedAt`  
最後一個容器映像提取的完成時間戳記。

`AvailabilityZone`  
任務所在的可用區域。  
可用區域中繼資料僅適用於使用平台第 1.4 版或更新版本 (Linux) 或 1.0.0 或更新版本 (Windows) 的 Fargate 任務。

`Containers`  
與任務相關聯之每個容器的容器中繼資料清單。    
`DockerId`  
容器的 Docker ID。  
`Name`  
任務定義中指定的容器名稱。  
`DockerName`  
提供給 Docker 的容器名稱。Amazon ECS 容器代理程式會產生容器的唯一名稱，以避免在單一執行個體上執行相同任務定義的多個複本時，發生名稱衝突。  
`Image`  
容器的映像。  
`ImageID`  
映像資訊清單的 SHA-256 摘要。此摘要可用於以 `repository-url/image@sha256:digest` 格式提取映像。  
`Ports`  
向容器開放的任何連接埠。如果未開放連接埠，則會省略此參數。  
`Labels`  
任何套用至容器的標籤。如果未套用標籤，則會省略此參數。  
`DesiredStatus`  
Amazon ECS 中容器的所需狀態。  
`KnownStatus`  
Amazon ECS 中容器的已知狀態。  
`ExitCode`  
容器的結束代碼。如果容器尚未結束，則會省略此參數。  
`Limits`  
在容器層級指定的資源限制，例如 CPU (以 CPU 單位表示) 和記憶體。如果未定義資源限制，則會省略此參數。  
`CreatedAt`  
容器的建立時間戳記。如果尚未建立容器，則會省略此參數。  
`StartedAt`  
容器的啟動時間戳記。如果尚未啟動容器，則會省略此參數。  
`FinishedAt`  
容器的停止時間戳記。如果尚未停止容器，則會省略此參數。  
`Type`  
容器的類型。任務定義中指定的容器類型為 `NORMAL`。您可以忽略其他容器類型，這些是 Amazon ECS 容器代理程式用來佈建內部任務資源的容器類型。  
`Networks`  
容器的網路資訊，例如網路模式和 IP 地址。如果未定義網路資訊，則會省略此參數。

`ClockDrift`  
關於參考時間和系統時間之間差異的資訊。這適用於 Linux 作業系統。此功能使用 Amazon Time Sync Service 來衡量時鐘準確性，並提供容器的時鐘錯誤界限。如需詳細資訊，請參閱 *Amazon EC2 User Guide for Linux instances* 中的 [Set the time for your Linux instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html)。    
`ReferenceTime`  
時鐘精確度的基礎。Amazon ECS 透過 NTP 使用世界協調時間 (UTC) 的全球標準，例如 `2021-09-07T16:57:44Z`。  
`ClockErrorBound`  
時鐘誤差的測量值，定義為 UTC 的偏移。此誤差是參考時間和系統時間之間的毫秒差異。  
`ClockSynchronizationStatus`  
指出系統時間和參考時間之間最近的同步嘗試是否成功。  
有效值為 `SYNCHRONIZED` 和 ` NOT_SYNCHRONIZED`。

`ExecutionStoppedAt`  
任務 `DesiredStatus` 移至 `STOPPED` 時的時間戳記。這會在基本容器移至 `STOPPED` 時發生。

### 範例任務中繼資料回應
<a name="task-metadata-endpoint-v2-example-task-metadata-response"></a>

下列為單一容器任務的 JSON 回應。

```
{
  "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"
}
```