Amazon ECS 容器元数据文件
从 Amazon ECS 容器代理版本 1.15.0 开始,容器或主机容器实例中提供了各种容器元数据。通过启用此功能,您可以从容器或主机容器实例中查询有关任务、容器以及容器实例的信息。元数据文件是在主机实例上创建的,并作为Docker卷装入容器中,因此在 Amazon Fargate上承载任务时不可用。
清除容器时,主机实例上的容器元数据文件将被清除。在这种情况下,您可以使用 ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION 容器代理变量进行调整。有关更多信息,请参阅 Amazon ECS 任务和映像自动清理。
容器元数据文件位置
默认情况下,容器元数据文件写入到以下主机和容器路径。
-
对于 Linux 实例:
-
主机路径:
/var/lib/ecs/data/metadata/cluster_name/task_id/container_name/ecs-container-metadata.json注意
Linux 主机路径假定在启动代理时使用默认数据目录挂载路径 (
/var/lib/ecs/data)。如果您并非使用经 Amazon ECS 优化的 AMI(或ecs-init程序包来启动和维护容器代理),请确保将ECS_HOST_DATA_DIR代理配置变量设置为容器代理状态文件所在的主机路径。有关更多信息,请参阅 Amazon ECS 容器代理配置。 -
容器路径:
/opt/ecs/metadata/random_ID/ecs-container-metadata.json
-
-
对于 Windows 实例:
-
主机路径:
C:\ProgramData\Amazon\ECS\data\metadata\task_id\container_name\ecs-container-metadata.json -
容器路径:
C:\ProgramData\Amazon\ECS\metadata\random_ID\ecs-container-metadata.json
-
但是为了便于访问,容器元数据文件位置设置为容器内的 ECS_CONTAINER_METADATA_FILE 环境变量。您可以使用以下命令读取容器中的文件内容:
-
对于 Linux 实例:
cat $ECS_CONTAINER_METADATA_FILE -
对于 Windows 实例 (PowerShell):
Get-Content -path $env:ECS_CONTAINER_METADATA_FILE