

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

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

**重要**  
如果使用託管於 Amazon EC2 執行個體上的 Amazon ECS 任務，請參閱 [Amazon ECS 任務中繼資料端點](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-metadata-endpoint.html)。

從 Fargate 平台版本 `1.4.0` 開始，名為 `ECS_CONTAINER_METADATA_URI_V4` 的環境變數會插入任務中的每個容器。當您查詢任務中繼資料端點第 4 版時，有各種任務中繼資料和 [Docker 統計資訊](https://docs.docker.com/engine/api/v1.30/#operation/ContainerStats)可供任務使用。

任務中繼資料端點第 4 版功能與第 3 版端點類似，但第 4 版為您的容器和任務提供其他網路中繼資料。查詢 `/stats` 端點時，也可以使用其他網路指標。

對於在使用平台版本 `1.4.0`或更新版本上執行的所有 Amazon ECS 任務 AWS Fargate ，任務中繼資料端點預設為開啟。

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

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

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

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

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

`${ECS_CONTAINER_METADATA_URI_V4}/stats`  
此路徑傳回 Docker 容器的 Docker 統計資訊。如需每個所傳回統計資訊的詳細資訊，請參閱 Docker API 文件中的 [ContainerStats](https://docs.docker.com/engine/api/v1.30/#operation/ContainerStats)。  
上的 Amazon ECS 任務 AWS Fargate 需要容器執行約 1 秒，才能傳回容器統計資料。

`${ECS_CONTAINER_METADATA_URI_V4}/task/stats`  
此路徑傳回與任務相關聯之所有容器的 Docker 統計資訊。如需每個所傳回統計資訊的詳細資訊，請參閱 Docker API 文件中的 [ContainerStats](https://docs.docker.com/engine/api/v1.30/#operation/ContainerStats)。  
上的 Amazon ECS 任務 AWS Fargate 需要容器執行約 1 秒，才能傳回容器統計資料。

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

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

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

`ServiceName`  
任務所屬的服務名稱。對於與服務相關聯的 Fargate 任務，會顯示 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` 中繼資料。

`EphemeralStorageMetrics`  
此任務暫時性儲存的保留大小和目前使用量。  
Fargate 會在磁盤上保留空間。此空間僅由 Fargate 使用。我們不會向您收費。它不會顯示在這些指標中。但是，您可以在其他工具 (例如 `df`) 中看到此額外儲存空間。  
`Utilized`  
此任務目前的暫時性儲存使用量 (MiB)。  
`Reserved`  
此任務的保留暫時性儲存裝置 (MiB)。在執行中的任務中，無法變更暫時性儲存的大小。您可以在任務定義中指定 `ephermalStorage` 物件來變更暫時性儲存量。`ephermalStorage` 是以 GiB 為單位，而不是以 MiB 為單位。此 `ephermalStorage` 與 `EphemeralStorageMetrics` 僅適用於 Fargate Linux 平台版本 1.4.0 或更高版本。

`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 地址。如果未定義網路資訊，則會省略此參數。  
`Snapshotter`  
containerd 使用 snapshotter 來下載此容器映像。有效值為 `overlayfs` (為預設值) 和 `soci`，並且在使用 SOCI 索引延遲載入時使用。此參數僅適用於在 Linux 平台版本 `1.4.0` 上執行的任務。  
`RestartCount`  
容器已重新啟動的次數。  
僅在容器已啟用重新啟動政策時，才會包含 `RestartCount` 中繼資料。如需詳細資訊，請參閱[使用容器重新啟動政策在 Amazon ECS 任務中重新啟動個別容器](container-restart-policy.md)。

`ClockDrift`  
關於參考時間和系統時間之間差異的資訊。此功能使用 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` 時發生。

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

以下範例顯示來自在 AWS Fargate上執行之 Amazon ECS 任務的任務中繼資料端點範例輸出。

在容器中，您可以使用 curl 後跟任務中繼資料端點來查詢端點，例如 `curl ${ECS_CONTAINER_METADATA_URI_V4}/task`。

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

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

```
{
    "DockerId": "cd189a933e5849daa93386466019ab50-2495160603",
    "Name": "curl",
    "DockerName": "curl",
    "Image": "111122223333.dkr.ecr.us-west-2.amazonaws.com/curltest:latest",
    "ImageID": "sha256:25f3695bedfb454a50f12d127839a68ad3caf91e451c1da073db34c542c4d2cb",
    "Labels": {
        "com.amazonaws.ecs.cluster": "arn:aws:ecs:us-west-2:111122223333:cluster/default",
        "com.amazonaws.ecs.container-name": "curl",
        "com.amazonaws.ecs.task-arn": "arn:aws:ecs:us-west-2:111122223333:task/default/cd189a933e5849daa93386466019ab50",
        "com.amazonaws.ecs.task-definition-family": "curltest",
        "com.amazonaws.ecs.task-definition-version": "2"
    },
    "DesiredStatus": "RUNNING",
    "KnownStatus": "RUNNING",
    "Limits": {
        "CPU": 10,
        "Memory": 128
    },
    "CreatedAt": "2020-10-08T20:09:11.44527186Z",
    "StartedAt": "2020-10-08T20:09:11.44527186Z",
    "Type": "NORMAL",
    "Networks": [
        {
            "NetworkMode": "awsvpc",
            "IPv4Addresses": [
                "192.0.2.3"
            ],
            "AttachmentIndex": 0,
            "MACAddress": "0a:de:f6:10:51:e5",
            "IPv4SubnetCIDRBlock": "192.0.2.0/24",
            "DomainNameServers": [
                "192.0.2.2"
            ],
            "DomainNameSearchList": [
                "us-west-2.compute.internal"
            ],
            "PrivateDNSName": "ip-10-0-0-222.us-west-2.compute.internal",
            "SubnetGatewayIpv4Address": "192.0.2.0/24"
        }
    ],
    "ContainerARN": "arn:aws:ecs:us-west-2:111122223333:container/05966557-f16c-49cb-9352-24b3a0dcd0e1",
    "LogOptions": {
        "awslogs-create-group": "true",
        "awslogs-group": "/ecs/containerlogs",
        "awslogs-region": "us-west-2",
        "awslogs-stream": "ecs/curl/cd189a933e5849daa93386466019ab50"
    },
    "LogDriver": "awslogs",
    "Snapshotter": "overlayfs"
}
```

## Fargate 上任務的 Amazon ECS 任務中繼資料第 4 版範例
<a name="task-metadata-endpoint-v4-fargate-example-task-metadata-response"></a>

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

```
{
  "Cluster": "arn:aws:ecs:us-east-1:123456789012:cluster/MyEmptyCluster",
  "TaskARN": "arn:aws:ecs:us-east-1:123456789012:task/MyEmptyCluster/bfa2636268144d039771334145e490c5",
  "Family": "sample-fargate",
  "Revision": "5",
  "DesiredStatus": "RUNNING",
  "KnownStatus": "RUNNING",
  "Limits": {
    "CPU": 0.25,
    "Memory": 512 
  },
  "PullStartedAt": "2023-07-21T15:45:33.532811081Z",
  "PullStoppedAt": "2023-07-21T15:45:38.541068435Z",
  "AvailabilityZone": "us-east-1d",
  "Containers": [
    {
      "DockerId": "bfa2636268144d039771334145e490c5-1117626119",
      "Name": "curl-image",
      "DockerName": "curl-image",
      "Image": "curlimages/curl",
      "ImageID": "sha256:daf3f46a2639c1613b25e85c9ee4193af8a1d538f92483d67f9a3d7f21721827",
      "Labels": {
        "com.amazonaws.ecs.cluster": "arn:aws:ecs:us-east-1:123456789012:cluster/MyEmptyCluster",
        "com.amazonaws.ecs.container-name": "curl-image",
        "com.amazonaws.ecs.task-arn": "arn:aws:ecs:us-east-1:123456789012:task/MyEmptyCluster/bfa2636268144d039771334145e490c5",
        "com.amazonaws.ecs.task-definition-family": "sample-fargate",
        "com.amazonaws.ecs.task-definition-version": "5"
      },
      "DesiredStatus": "RUNNING",
      "KnownStatus": "RUNNING",
      "Limits": { "CPU": 128 },
      "CreatedAt": "2023-07-21T15:45:44.91368314Z",
      "StartedAt": "2023-07-21T15:45:44.91368314Z",
      "Type": "NORMAL",
      "Networks": [
        {
          "NetworkMode": "awsvpc",
          "IPv4Addresses": ["172.31.42.189"],
          "AttachmentIndex": 0,
          "MACAddress": "0e:98:9f:33:76:d3",
          "IPv4SubnetCIDRBlock": "172.31.32.0/20",
          "DomainNameServers": ["172.31.0.2"],
          "DomainNameSearchList": ["ec2.internal"],
          "PrivateDNSName": "ip-172-31-42-189.ec2.internal",
          "SubnetGatewayIpv4Address": "172.31.32.1/20"
        }
      ],
      "ContainerARN": "arn:aws:ecs:us-east-1:123456789012:container/MyEmptyCluster/bfa2636268144d039771334145e490c5/da6cccf7-1178-400c-afdf-7536173ee209",
      "Snapshotter": "overlayfs"
    },
    {
      "DockerId": "bfa2636268144d039771334145e490c5-3681984407",
      "Name": "fargate-app",
      "DockerName": "fargate-app",
      "Image": "public.ecr.aws/docker/library/httpd:latest",
      "ImageID": "sha256:8059bdd0058510c03ae4c808de8c4fd2c1f3c1b6d9ea75487f1e5caa5ececa02",
      "Labels": {
        "com.amazonaws.ecs.cluster": "arn:aws:ecs:us-east-1:123456789012:cluster/MyEmptyCluster",
        "com.amazonaws.ecs.container-name": "fargate-app",
        "com.amazonaws.ecs.task-arn": "arn:aws:ecs:us-east-1:123456789012:task/MyEmptyCluster/bfa2636268144d039771334145e490c5",
        "com.amazonaws.ecs.task-definition-family": "sample-fargate",
        "com.amazonaws.ecs.task-definition-version": "5"
      },
      "DesiredStatus": "RUNNING",
      "KnownStatus": "RUNNING",
      "Limits": { "CPU": 2 },
      "CreatedAt": "2023-07-21T15:45:44.954460255Z",
      "StartedAt": "2023-07-21T15:45:44.954460255Z",
      "Type": "NORMAL",
      "Networks": [
        {
          "NetworkMode": "awsvpc",
          "IPv4Addresses": ["172.31.42.189"],
          "AttachmentIndex": 0,
          "MACAddress": "0e:98:9f:33:76:d3",
          "IPv4SubnetCIDRBlock": "172.31.32.0/20",
          "DomainNameServers": ["172.31.0.2"],
          "DomainNameSearchList": ["ec2.internal"],
          "PrivateDNSName": "ip-172-31-42-189.ec2.internal",
          "SubnetGatewayIpv4Address": "172.31.32.1/20"
        }
      ],
      "ContainerARN": "arn:aws:ecs:us-east-1:123456789012:container/MyEmptyCluster/bfa2636268144d039771334145e490c5/f65b461d-aa09-4acb-a579-9785c0530cbc",
      "Snapshotter": "overlayfs"
    }
  ],
  "LaunchType": "FARGATE",
  "ClockDrift": {
    "ClockErrorBound": 0.446931,
    "ReferenceTimestamp": "2023-07-21T16:09:17Z",
    "ClockSynchronizationStatus": "SYNCHRONIZED"
  },
  "EphemeralStorageMetrics": { 
    "Utilized": 261, 
    "Reserved": 20496 
  }
}
```

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

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

```
{
  "3d1f891cded94dc795608466cce8ddcf-464223573": {
    "read": "2020-10-08T21:24:44.938937019Z",
    "preread": "2020-10-08T21:24:34.938633969Z",
    "pids_stats": {},
    "blkio_stats": {
      "io_service_bytes_recursive": [
        {
          "major": 202,
          "minor": 26368,
          "op": "Read",
          "value": 638976
        },
        {
          "major": 202,
          "minor": 26368,
          "op": "Write",
          "value": 0
        },
        {
          "major": 202,
          "minor": 26368,
          "op": "Sync",
          "value": 638976
        },
        {
          "major": 202,
          "minor": 26368,
          "op": "Async",
          "value": 0
        },
        {
          "major": 202,
          "minor": 26368,
          "op": "Total",
          "value": 638976
        }
      ],
      "io_serviced_recursive": [
        {
          "major": 202,
          "minor": 26368,
          "op": "Read",
          "value": 12
        },
        {
          "major": 202,
          "minor": 26368,
          "op": "Write",
          "value": 0
        },
        {
          "major": 202,
          "minor": 26368,
          "op": "Sync",
          "value": 12
        },
        {
          "major": 202,
          "minor": 26368,
          "op": "Async",
          "value": 0
        },
        {
          "major": 202,
          "minor": 26368,
          "op": "Total",
          "value": 12
        }
      ],
      "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": 1137691504,
        "percpu_usage": [
          696479228,
          441212276,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "usage_in_kernelmode": 80000000,
        "usage_in_usermode": 810000000
      },
      "system_cpu_usage": 9393210000000,
      "online_cpus": 2,
      "throttling_data": {
        "periods": 0,
        "throttled_periods": 0,
        "throttled_time": 0
      }
    },
    "precpu_stats": {
      "cpu_usage": {
        "total_usage": 1136624601,
        "percpu_usage": [
          695639662,
          440984939,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "usage_in_kernelmode": 80000000,
        "usage_in_usermode": 810000000
      },
      "system_cpu_usage": 9373330000000,
      "online_cpus": 2,
      "throttling_data": {
        "periods": 0,
        "throttled_periods": 0,
        "throttled_time": 0
      }
    },
    "memory_stats": {
      "usage": 6504448,
      "max_usage": 8458240,
      "stats": {
        "active_anon": 1675264,
        "active_file": 557056,
        "cache": 651264,
        "dirty": 0,
        "hierarchical_memory_limit": 536870912,
        "hierarchical_memsw_limit": 9223372036854772000,
        "inactive_anon": 0,
        "inactive_file": 3088384,
        "mapped_file": 430080,
        "pgfault": 11034,
        "pgmajfault": 5,
        "pgpgin": 8436,
        "pgpgout": 7137,
        "rss": 4669440,
        "rss_huge": 0,
        "total_active_anon": 1675264,
        "total_active_file": 557056,
        "total_cache": 651264,
        "total_dirty": 0,
        "total_inactive_anon": 0,
        "total_inactive_file": 3088384,
        "total_mapped_file": 430080,
        "total_pgfault": 11034,
        "total_pgmajfault": 5,
        "total_pgpgin": 8436,
        "total_pgpgout": 7137,
        "total_rss": 4669440,
        "total_rss_huge": 0,
        "total_unevictable": 0,
        "total_writeback": 0,
        "unevictable": 0,
        "writeback": 0
      },
      "limit": 9223372036854772000
    },
    "name": "curltest",
    "id": "3d1f891cded94dc795608466cce8ddcf-464223573",
    "networks": {
      "eth1": {
        "rx_bytes": 2398415937,
        "rx_packets": 1898631,
        "rx_errors": 0,
        "rx_dropped": 0,
        "tx_bytes": 1259037719,
        "tx_packets": 428002,
        "tx_errors": 0,
        "tx_dropped": 0
      }
    },
    "network_rate_stats": {
      "rx_bytes_per_sec": 43.298687872232854,
      "tx_bytes_per_sec": 215.39347269466413
    }
  }
}
```