本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon ECS 任務元數據端點版本 2
重要
不再積極維護任務中繼資料第 2 版端點。建議您更新任務中繼資料第 4 版端點,以取得最新的中繼資料端點資訊。如需詳細資訊,請參閱Amazon ECS 任務元數據端點版本 4。
從 Amazon 容器代理程式 1.17.0 版開始,Amazon ECS 容器代理程式提供的HTTP端點上使用awsvpc
網路模式的任務可以使用各種任務中繼資料和 Docker 統計
屬於以awsvpc
網路模式啟動之工作的所有容器都會在預先定義的連結-本機IPv4位址範圍內接收本機位址。當容器查詢中繼資料端點時,Amazon ECS 容器代理程式可以根據其唯一 IP 位址判斷容器所屬的任務,並傳回該任務的中繼資料和統計資料。
啟用任務中繼資料
對於下列項目,預設會啟用任務中繼資料第 2 版功能:
-
使用 Fargate 啟動類型且使用平台 1.1.0 版或更新版本的任務。如需詳細資訊,請參閱Amazon 的 Fargate 平台版本 ECS。
-
使用同樣使用
awsvpc
網路模式的EC2啟動類型的任務,並在至少執行 Amazon 容器代理程式 1.17.0 版的 Amazon EC2 Linux 基礎設施上啟動,或在至少執行 Amazon ECS 容器代理程式版本1.54.0
的 Amazon EC2 ECS Windows 基礎設施上啟動。如需詳細資訊,請參閱Amazon 容器ECS執行個體管理。
您可以將代理更新為最新版本,以在舊容器執行個體上新增此功能的支援。如需詳細資訊,請參閱更新 Amazon ECS 容器代理。
任務中繼資料端點路徑
下列API端點可供容器使用:
169.254.170.2/v2/metadata
-
此端點會傳回工作JSON的中繼資料,包括容器清單以IDs及與工作相關聯之所有容器的名稱。如需此端點之回應的詳細資訊,請參閱「任務元數據JSON響應」。
169.254.170.2/v2/metadata/
<container-id>
-
此端點會傳回指定 Docker 容器 ID 的中繼資料JSON。
169.254.170.2/v2/metadata/taskWithTags
-
除了可以使用擷取的工作和容器執行個體標籤之外,此路徑還會傳回
/task
端點中包含之工作的中繼資料ListTagsForResource
API。 169.254.170.2/v2/stats
-
此端點會傳回與工作相關聯之所有容器的 Docker 統計資料JSON。如需有關每個傳回統計資料的詳細資訊,請參閱 Docker API 文件ContainerStats
中的。 169.254.170.2/v2/stats/
<container-id>
-
此端點會傳回指定 Docker 容器 ID JSON 的 Docker 統計資料。如需有關每個傳回統計資料的詳細資訊,請參閱 Docker API 文件ContainerStats
中的。
任務元數據JSON響應
從工作中繼資料端點 (169.254.170.2/v2/metadata
) 回JSON應傳回下列資訊。
Cluster
-
任務所屬 Amazon ECS 群集的 Amazon 資源名稱(ARN)或簡稱。
TaskARN
-
容器所屬任務的完整 Amazon 資源名稱 (ARN)。
Family
-
任務的 Amazon ECS 任務定義的系列。
Revision
-
任務的 Amazon ECS 任務定義的修訂。
DesiredStatus
-
Amazon 任務的所需狀態ECS。
KnownStatus
-
Amazon 任務的已知狀態ECS。
Limits
-
在工作層級指定的資源限制,例如 CPU (以中表示vCPUs) 和記憶體。如果未定義資源限制,則會省略此參數。
PullStartedAt
-
第一個容器映像提取的開始時間戳記。
PullStoppedAt
-
最後一個容器映像提取的完成時間戳記。
AvailabilityZone
-
任務所在的可用區域。
注意
可用區域中繼資料僅適用於使用平台第 1.4 版或更新版本 (Linux) 或 1.0.0 或更新版本 (Windows) 的 Fargate 任務。
Containers
-
與任務相關聯之每個容器的容器中繼資料清單。
DockerId
-
容器的 Docker ID。
Name
-
任務定義中指定的容器名稱。
DockerName
-
提供給 Docker 的容器名稱。Amazon ECS 容器代理程式會為容器產生唯一名稱,以避免在單一執行個體上執行相同任務定義的多個副本時發生名稱衝突。
Image
-
容器的映像。
ImageID
-
影像的 SHA -256 摘要。
Ports
-
向容器開放的任何連接埠。如果未開放連接埠,則會省略此參數。
Labels
-
任何套用至容器的標籤。如果未套用標籤,則會省略此參數。
DesiredStatus
-
Amazon 容器的所需狀態ECS。
KnownStatus
-
來自 Amazon 的容器的已知狀態ECS。
ExitCode
-
容器的結束代碼。如果容器尚未結束,則會省略此參數。
Limits
-
在容器層級指定的資源限制,例如 CPU (以CPU單位表示) 和記憶體。如果未定義資源限制,則會省略此參數。
CreatedAt
-
容器的建立時間戳記。如果尚未建立容器,則會省略此參數。
StartedAt
-
容器的啟動時間戳記。如果尚未啟動容器,則會省略此參數。
FinishedAt
-
容器的停止時間戳記。如果尚未停止容器,則會省略此參數。
Type
-
容器的類型。任務定義中指定的容器類型為
NORMAL
。您可以忽略 Amazon 容器代理程式用於內部任務資源佈建的其他ECS容器類型。 Networks
-
容器的網路資訊,例如網路模式和 IP 地址。如果未定義網路資訊,則會省略此參數。
ClockDrift
-
關於參考時間和系統時間之間差異的資訊。這適用於 Linux 作業系統。此功能使用 Amazon 時間同步服務來測量時脈準確度,並提供容器的時脈錯誤。如需詳細資訊,請參閱 Amazon Linux 執行個體EC2使用者指南中的設定 Linux 執行個體的時間。
ReferenceTime
-
時鐘精確度的基礎。例如 NTP
2021-09-07T16:57:44Z
,Amazon ECS 使用協調世界時(UTC)全球標準。 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" }