Amazon ECS 容器元数据文件格式 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon ECS 容器元数据文件格式

以下信息存储在容器元数据 JSON 文件中。

Cluster

容器的任务在其上运行的集群的名称。

ContainerInstanceARN

主机容器实例的完整 Amazon Resource Name (ARN)。

TaskARN

容器所属的任务的完整 Amazon Resource Name (ARN)。

TaskDefinitionFamily

容器正在使用的任务定义系列的名称。

TaskDefinitionRevision

容器正在使用的任务定义修订版本。

ContainerID

容器的 Docker 容器 ID (而不是 Amazon ECS 容器 ID)。

ContainerName

容器 Amazon ECS 任务定义中的容器名称。

DockerContainerName

Docker 守护程序用于容器的容器名称(例如,docker ps 命令输出中显示的名称)。

ImageID

用于启动容器的 Docker 映像的 SHA 摘要。

ImageName

用于启动容器的 Docker 映像的映像名称和标签。

PortMappings

与容器关联的任何端口映射。

ContainerPort

公开的容器上的端口。

HostPort

公开的主机容器实例上的端口。

BindIp

Docker 分配给容器的绑定 IP 地址。此 IP 地址仅适用于 bridge 网络模式,只能从容器实例进行访问。

Protocol

用于端口映射的网络协议。

Networks

容器的网络模式和 IP 地址。

NetworkMode

容器所属的任务的网络模式。

IPv4Addresses

与容器关联的 IP 地址。

重要

如果您的任务使用的是 awsvpc 网络模式,则将不会返回容器的 IP 地址。在这种情况下,您可以通过使用以下命令读取 /etc/hosts 文件来检索 IP 地址:

tail -1 /etc/hosts | awk '{print $1}'
MetadataFileStatus

元数据文件的状态。如果状态为 READY,则元数据文件是最新状态且内容完整。如果文件尚未准备就绪 (例如在启动任务时),将会提供文件格式的截断版本。为了避免可能出现的竞用情况,比如已经启动容器,但尚未写入元数据,您可以解析元数据文件,并等待此参数设置为 READY,然后再使用元数据。这通常是在容器启动后的 1 秒内提供。

AvailabilityZone

主机容器实例所在的可用区。

HostPrivateIPv4Address

容器所属任务的私有 IP 地址。

HostPublicIPv4Address

容器所属任务的公有 IP 地址。

例 Amazon ECS 容器元数据文件 (READY)

以下示例显示了处于 READY 状态的容器元数据文件。

{ "Cluster": "default", "ContainerInstanceARN": "arn:aws:ecs:us-west-2:012345678910:container-instance/default/1f73d099-b914-411c-a9ff-81633b7741dd", "TaskARN": "arn:aws:ecs:us-west-2:012345678910:task/default/2b88376d-aba3-4950-9ddf-bcb0f388a40c", "TaskDefinitionFamily": "console-sample-app-static", "TaskDefinitionRevision": "1", "ContainerID": "aec2557997f4eed9b280c2efd7afccdcedfda4ac399f7480cae870cfc7e163fd", "ContainerName": "simple-app", "CreatedAt": "2023-10-08T20:09:11.44527186Z", "StartedAt": "2023-10-08T20:09:11.44527186Z", "DockerContainerName": "/ecs-console-sample-app-static-1-simple-app-e4e8e495e8baa5de1a00", "ImageID": "sha256:2ae34abc2ed0a22e280d17e13f9c01aaf725688b09b7a1525d1a2750e2c0d1de", "ImageName": "httpd:2.4", "PortMappings": [ { "ContainerPort": 80, "HostPort": 80, "BindIp": "0.0.0.0", "Protocol": "tcp" } ], "Networks": [ { "NetworkMode": "bridge", "IPv4Addresses": ["192.0.2.0"] } ], "MetadataFileStatus": "READY", "AvailabilityZone": "us-east-1b", "HostPrivateIPv4Address": "192.0.2.0", "HostPublicIPv4Address": "203.0.113.0" }
例 未完成的 Amazon ECS 容器元数据文件 (尚未处于 READY 状态)

以下示例显示了尚未处于 READY 状态的容器元数据文件。文件中的信息仅限任务定义中已知的几个参数。容器元数据文件应在容器启动后的 1 秒内准备就绪。

{ "Cluster": "default", "ContainerInstanceARN": "arn:aws:ecs:us-west-2:012345678910:container-instance/default/1f73d099-b914-411c-a9ff-81633b7741dd", "TaskARN": "arn:aws:ecs:us-west-2:012345678910:task/default/d90675f8-1a98-444b-805b-3d9cabb6fcd4", "ContainerName": "metadata" }