Amazon ECS 任務中繼資料端點第 2 版 - Amazon Elastic Container Service

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

Amazon ECS 任務中繼資料端點第 2 版

重要

不再積極維護任務中繼資料第 2 版端點。建議您更新任務中繼資料第 4 版端點,以取得最新的中繼資料端點資訊。如需詳細資訊,請參閱Amazon ECS 任務中繼資料端點第 4 版

從 Amazon ECS 容器代理程式 1.17.0 版開始,在 Amazon ECS 容器代理提供之 HTTP 端點使用 awsvpc 網路模式的任務,皆可使用各種任務中繼資料和 Docker 統計資訊

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

啟用任務中繼資料

對於下列項目,預設會啟用任務中繼資料第 2 版功能:

  • 使用 Fargate 啟動類型且使用平台 1.1.0 版或更新版本的任務。如需詳細資訊,請參閱Amazon ECS 的 Fargate 平台版本

  • 使用 EC2 啟動類型的任務,該任務也會使用 awsvpc 網路模式,且在至少執行 Amazon ECS 容器代理程式 1.17.0 版的 Amazon EC2 Linux 基礎設施上啟動,或在至少執行 1.54.0 版 Amazon ECS 容器代理程式的 Amazon EC2 Windows 基礎設施上啟動。如需詳細資訊,請參閱Amazon ECS Linux 容器執行個體管理

您可以將代理更新為最新版本,以在舊容器執行個體上新增此功能的支援。如需詳細資訊,請參閱更新 Amazon ECS 容器代理程式

任務中繼資料端點路徑

容器可使用下列 API 端點:

169.254.170.2/v2/metadata

此端點會傳回任務的中繼資料 JSON,包括與任務相關聯之所有容器的容器 ID 和名稱清單。如需此端點之回應的詳細資訊,請參閱「任務中繼資料 JSON 回應」。

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

169.254.170.2/v2/stats/<container-id>

此端點會傳回指定 Docker 容器 ID 的 Docker 統計資訊 JSON。如需每個所傳回統計資訊的詳細資訊,請參閱 Docker API 文件中的 ContainerStats

任務中繼資料 JSON 回應

任務中繼資料端點 (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 Linux 執行個體使用者指南》中的設定 Linux 執行個體的時間

ReferenceTime

時鐘精確度的基礎。Amazon ECS 透過 NTP 使用世界協調時間 (UTC) 的全球標準,例如 2021-09-07T16:57:44Z

ClockErrorBound

時鐘誤差的測量值,定義為 UTC 的偏移。此誤差是參考時間和系統時間之間的毫秒差異。

ClockSynchronizationStatus

指出系統時間和參考時間之間最近的同步嘗試是否成功。

有效值為 SYNCHRONIZED NOT_SYNCHRONIZED

ExecutionStoppedAt

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

範例任務中繼資料回應

下列為單一容器任務的 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" }