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

任务元数据终端节点版本 4

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

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

重要

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

查询任务元数据版本 4 终端节点时,包括以下其他网络元数据:

  • AttachmentIndex

  • IPV4SubnetCIDRBlock

  • MACAddress

  • PrivateDNSName

  • SubnetGatewayIPV4Address

  • DomainNameServers

  • DomainNameSearchList

启用任务元数据

为在平台版本 1.4 或更高版本上使用 Fargate 启动类型的任务默认启用任务元数据终端节点版本 4 功能。

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

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

${ECS_CONTAINER_METADATA_URI_V4}

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

${ECS_CONTAINER_METADATA_URI_V4}/task

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

${ECS_CONTAINER_METADATA_URI_V4}/stats

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

${ECS_CONTAINER_METADATA_URI_V4}/task/stats

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

任务元数据 JSON 响应

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

Cluster

此任务所属的 Amazon ECS 集群的完整 Amazon 资源名称 (ARN)。

TaskARN

容器所属的任务的完整 Amazon 资源名称 (ARN)。

Family

任务的 Amazon ECS 任务定义系列。

Revision

任务的 Amazon ECS 任务定义修订。

DesiredStatus

来自 Amazon ECS 的任务的所需状态。

KnownStatus

来自 Amazon ECS 的任务的已知状态。

Limits

在任务级别上指定的资源限制 (如 CPU 和内存)。如果未定义资源限制,则省略此参数。

PullStartedAt

开始提取第一个容器映像时的时间戳。

PullStoppedAt

完成提取最后一个容器映像时的时间戳。

AvailabilityZone

任务所在的可用区。

注意

可用区元数据仅适用于使用平台版本 1.4 或更高版本的 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 和内存)。如果未定义资源限制,则省略此参数。

CreatedAt

创建容器时的时间戳。如果尚未创建容器,则省略此参数。

StartedAt

容器启动时的时间戳。如果尚未启动容器,则省略此参数。

FinishedAt

容器停止时的时间戳。如果尚未停止容器,则省略此参数。

Type

容器的类型。在您的任务定义中指定的容器属于 NORMAL 类型。您可以省略其他被 容器代理用来进行内部任务资源预配置的容器类型。

Networks

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

ExecutionStoppedAt

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

示例

以下示例显示来自任务元数据终端节点的示例输出。

容器元数据响应示例

查询 ${ECS_CONTAINER_METADATA_URI_V4} 终端节点时,仅返回有关容器本身的元数据。下面是一个示例输出。

{ "DockerId": "c7a6b9b237934e9999f319ea3ccc9da4query-metadata", "Name": "query-metadata", "DockerName": "query-metadata", "Image": "mreferre/eksutils", "ImageID": "sha256:1b146e73f801617610dcb00441c6423e7c85a7583dd4a65ed1be03cb0e123311", "Labels": { "com.amazonaws.ecs.cluster": "arn:aws:ecs:us-west-2:&ExampleAWSAccountNo1;:cluster/default", "com.amazonaws.ecs.container-name": "query-metadata", "com.amazonaws.ecs.task-arn": "arn:aws:ecs:us-west-2:&ExampleAWSAccountNo1;:task/default/c7a6b9b237934e9999f319ea3ccc9da4", "com.amazonaws.ecs.task-definition-family": "query-metadata", "com.amazonaws.ecs.task-definition-version": "3" }, "DesiredStatus": "RUNNING", "KnownStatus": "RUNNING", "Limits": { "CPU": 2 }, "CreatedAt": "2020-03-26T22:11:23.62831313Z", "StartedAt": "2020-03-26T22:11:23.62831313Z", "Type": "NORMAL", "Networks": [ { "NetworkMode": "awsvpc", "IPv4Addresses": [ "10.0.0.61" ], "AttachmentIndex": 0, "IPv4SubnetCIDRBlock": "10.0.0.0/24", "MACAddress": "0a:d2:d0:80:b6:b4", "DomainNameServers": [ "10.0.0.2" ], "DomainNameSearchList": [ "us-west-2.compute.internal" ], "PrivateDNSName": "ip-10-0-0-61.us-west-2.compute.internal", "SubnetGatewayIpv4Address": "" } ] }

任务元数据响应示例

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

{ "Cluster": "arn:aws:ecs:us-west-2:&ExampleAWSAccountNo1;:cluster/default", "TaskARN": "arn:aws:ecs:us-west-2:&ExampleAWSAccountNo1;:task/default/febee046097849aba589d4435207c04a", "Family": "query-metadata", "Revision": "7", "DesiredStatus": "RUNNING", "KnownStatus": "RUNNING", "Limits": { "CPU": 0.25, "Memory": 512 }, "PullStartedAt": "2020-03-26T22:25:40.420726088Z", "PullStoppedAt": "2020-03-26T22:26:22.235177616Z", "AvailabilityZone": "us-west-2c", "Containers": [ { "DockerId": "febee046097849aba589d4435207c04aquery-metadata", "Name": "query-metadata", "DockerName": "query-metadata", "Image": "mreferre/eksutils", "ImageID": "sha256:1b146e73f801617610dcb00441c6423e7c85a7583dd4a65ed1be03cb0e123311", "Labels": { "com.amazonaws.ecs.cluster": "arn:aws:ecs:us-west-2:&ExampleAWSAccountNo1;:cluster/default", "com.amazonaws.ecs.container-name": "query-metadata", "com.amazonaws.ecs.task-arn": "arn:aws:ecs:us-west-2:&ExampleAWSAccountNo1;:task/default/febee046097849aba589d4435207c04a", "com.amazonaws.ecs.task-definition-family": "query-metadata", "com.amazonaws.ecs.task-definition-version": "7" }, "DesiredStatus": "RUNNING", "KnownStatus": "RUNNING", "Limits": { "CPU": 2 }, "CreatedAt": "2020-03-26T22:26:24.534553758Z", "StartedAt": "2020-03-26T22:26:24.534553758Z", "Type": "NORMAL", "Networks": [ { "NetworkMode": "awsvpc", "IPv4Addresses": [ "10.0.0.108" ], "AttachmentIndex": 0, "IPv4SubnetCIDRBlock": "10.0.0.0/24", "MACAddress": "0a:62:17:7a:36:68", "DomainNameServers": [ "10.0.0.2" ], "DomainNameSearchList": [ "us-west-2.compute.internal" ], "PrivateDNSName": "ip-10-0-0-108.us-west-2.compute.internal", "SubnetGatewayIpv4Address": "" } ] } ] }

示例任务统计信息响应

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

{ "1823e1f6-7248-43c3-bed6-eea1fa7501a5query-metadata": { "read": "2020-04-06T16:12:01.090148907Z", "preread": "2020-04-06T16:11:56.083890951Z", "pids_stats": { }, "blkio_stats": { "io_service_bytes_recursive": [ { "major": 202, "minor": 26368, "op": "Read", "value": 3452928 }, { "major": 202, "minor": 26368, "op": "Write", "value": 0 }, { "major": 202, "minor": 26368, "op": "Sync", "value": 3452928 }, { "major": 202, "minor": 26368, "op": "Async", "value": 0 }, { "major": 202, "minor": 26368, "op": "Total", "value": 3452928 } ], "io_serviced_recursive": [ { "major": 202, "minor": 26368, "op": "Read", "value": 118 }, { "major": 202, "minor": 26368, "op": "Write", "value": 0 }, { "major": 202, "minor": 26368, "op": "Sync", "value": 118 }, { "major": 202, "minor": 26368, "op": "Async", "value": 0 }, { "major": 202, "minor": 26368, "op": "Total", "value": 118 } ], "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": 410557100, "percpu_usage": [ 410557100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], "usage_in_kernelmode": 10000000, "usage_in_usermode": 250000000 }, "throttling_data": { "periods": 0, "throttled_periods": 0, "throttled_time": 0 } }, "precpu_stats": { "cpu_usage": { "total_usage": 0, "usage_in_kernelmode": 0, "usage_in_usermode": 0 }, "throttling_data": { "periods": 0, "throttled_periods": 0, "throttled_time": 0 } }, "memory_stats": { "usage": 4390912, "max_usage": 6488064, "stats": { "active_anon": 278528, "active_file": 344064, "cache": 3452928, "dirty": 0, "hierarchical_memory_limit": 536870912, "hierarchical_memsw_limit": 9223372036854772000, "inactive_anon": 0, "inactive_file": 3108864, "mapped_file": 2412544, "pgfault": 2800, "pgmajfault": 28, "pgpgin": 3144, "pgpgout": 2233, "rss": 278528, "rss_huge": 0, "total_active_anon": 278528, "total_active_file": 344064, "total_cache": 3452928, "total_dirty": 0, "total_inactive_anon": 0, "total_inactive_file": 3108864, "total_mapped_file": 2412544, "total_pgfault": 2800, "total_pgmajfault": 28, "total_pgpgin": 3144, "total_pgpgout": 2233, "total_rss": 278528, "total_rss_huge": 0, "total_unevictable": 0, "total_writeback": 0, "unevictable": 0, "writeback": 0 }, "limit": 9223372036854772000 }, "name": "query-metadata", "id": "1823e1f6-7248-43c3-bed6-eea1fa7501a5query-metadata", "networks": { "eth1": { "rx_bytes": 564655295, "rx_packets": 384960, "rx_errors": 0, "rx_dropped": 0, "tx_bytes": 3043269, "tx_packets": 54355, "tx_errors": 0, "tx_dropped": 0 } } } }