Fargate 上任务的任务元数据端点版本 4 - Amazon ECS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Fargate 上任务的任务元数据端点版本 4

重要

如果您正在使用托管在 Amazon EC2 实例上的Amazon ECS任务,请参阅 Amazon Elastic Container Service 开发人员指南中的 Amazon ECS 任务元数据端点。

从 Fargate 平台版本 1.4.0 开始,名为 ECS_CONTAINER_METADATA_URI_V4 的环境变量被注入到任务中的每个容器中。在您查询任务元数据版本 4 端点时,将为任务提供各种任务元数据和 Docker 统计数据

任务元数据版本 4 端点的功能与版本 3 端点相似,但为容器和任务提供了额外的网络元数据。查询 /stats 终端节点时还可以使用其他网络指标。

注意

为避免将来需要创建新的任务元数据终端节点版本,可能会将其他元数据添加到版本 4 输出中。我们不会删除任何现有元数据或更改元数据字段名称。

启用任务元数据端点

默认情况下,对于使用平台版本 1.4.0 或更高版本在 Amazon Fargate 上运行的所有 Amazon ECS 任务,都会启用任务元数据端点。

Fargate 任务元数据端点版本 4 路径

以下任务元数据终端节点可用于容器:

${ECS_CONTAINER_METADATA_URI_V4}

此路径返回容器的元数据。

${ECS_CONTAINER_METADATA_URI_V4}/task

此路径返回任务的元数据,包括与任务相关的所有容器的 ID 和名称列表。有关此终端节点响应的更多信息,请参阅Fargate 上任务的任务元数据 JSON 响应

${ECS_CONTAINER_METADATA_URI_V4}/stats

此路径返回 Docker 容器的 Docker 统计数据。有关每个返回的统计数据的更多信息,请参阅ContainerStats在 Docker API 文档中。

注意

Amazon Fargate 上的 Amazon ECS 任务要求容器在返回容器统计数据之前运行约 1 秒。

${ECS_CONTAINER_METADATA_URI_V4}/task/stats

此路径返回与任务相关的所有容器的 Docker 统计数据 。有关每个返回的统计数据的更多信息,请参阅ContainerStats在 Docker API 文档中。

注意

Amazon Fargate 上的 Amazon ECS 任务要求容器在返回容器统计数据之前运行约 1 秒。

Fargate 上任务的任务元数据 JSON 响应

以下元数据返回自任务元数据端点 (${ECS_CONTAINER_METADATA_URI_V4}/task) JSON 响应。

Cluster

任务所属的 Amazon ECS 群集的 Amazon Resource Name (ARN) 或短名称。

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 对象以更改短暂存储量。以 GiB 而不是 MiB 为单位指定 ephermalStorageephermalStorageEphemeralStorageMetrics 仅适用于 Fargate Linux 平台 1.4.0 或更高版本上。

Containers

与任务关联的每个容器的容器元数据列表。

DockerId

容器的 Docker ID。

当您使用 Fargate 时,id 是一个 32 位十六进制,后面是 10 位数字。

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 容器代理用来进行内部任务资源预配置的容器类型。

LogDriver

容器使用的日志驱动程序。

注意

LogDriver 元数据仅在使用Amazon ECS Linux 容器代理版本时包含 1.45.0 或更高版本。

LogOptions

为容器定义的日志驱动程序选项。

注意

LogOptions 元数据仅在使用Amazon ECS Linux 容器代理版本时包含 1.45.0 或更高版本。

ContainerARN

容器的完整 Amazon Resource Name (ARN)。

注意

ContainerARN 元数据仅在使用Amazon ECS Linux 容器代理版本时包含 1.45.0 或更高版本。

Networks

容器的网络信息,如网络模式和 IP 地址。如果未定义网络信息,则省略此参数。

Snapshotter

的snapshotter那是被使用的containerd下载此容器镜像。有效值为overlayfs,这是默认值,以及soci,在延迟加载 SOCI 索引时使用。此参数仅适用于在 Linux 平台版本上运行的任务1.4.0

ClockDrift

有关参考时间和系统时间之间差异的信息。

ReferenceTime

时钟准确度的基础。Amazon ECS 通过 NTP 使用协调世界时(UTC)全球标准,例如 2021-09-07T16:57:44Z

ClockErrorBound

时钟误差的度量,定义为与 UTC 的偏移量。此错误是参考时间和系统时间之间的差异(以毫秒为单位)。

ClockSynchronizationStatus

指示系统时间和参考时间之间的最近一次同步尝试是否成功。

有效值为 SYNCHRONIZED NOT_SYNCHRONIZED

ExecutionStoppedAt

任务的 DesiredStatus 变为 STOPPED 时的时间戳。这将发生在关键容器变成 STOPPED 时。

Fargate 上的任务示例

以下示例显示了在上 Amazon Fargate 运行的 Amazon ECS 任务的任务元数据端点的输出示例。

通过容器,您可以在任务元数据端点后面使用 curl 来查询端点,例如 curl ${ECS_CONTAINER_METADATA_URI_V4}/task

容器元数据响应示例

查询 ${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 任务元数据响应示例

查询 ${ECS_CONTAINER_METADATA_URI_V4}/task 终端节点时,将返回有关容器所属的任务的元数据。下面是一个示例输出。

{ "Cluster": "arn:aws:ecs:us-east-1:123456789012:cluster/clusterName", "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 } }

示例任务统计信息响应

查询 ${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 } } }