Fargate 任务(容器)是否可以检索其元数据,例如服务名称?

Is it possible for Fargate task (container) to retrieve its metadata, e.g. service name?

假设某个 docker 映像将部署在集群中的不同服务名称上。我认为如果你想要一个复杂的部署会发生这种情况,它不仅会导致该图像只有一个统一的工作人员。

在这种情况下,我希望任务本身能够识别正在执行该任务的服务名称。 据我所知,在 EC2 中,可以通过访问 169.254.169.254 来获取有关实例的一些元数据,如他们的文档中所述。 (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)

问题

您可以使用版本 task-metadata-endpoint-v3

curl ${ECS_CONTAINER_METADATA_URI}/task

任务的此路径 returns 元数据 JSON,包括与任务关联的所有容器的 容器 ID 和名称列表 .有关此端点的响应的详细信息,请参阅 Task Metadata JSON Response

Amazon ECS 任务元数据端点

Amazon ECS 容器代理提供了一种检索各种任务元数据和 Docker 统计数据的方法。这称为任务元数据端点。以下版本可用:

任务元数据端点版本 3 – 至少适用于在平台版本 v1.3.0 或更高版本上使用 Fargate 启动类型的任务以及使用 EC2 启动类型并在 Amazon EC2 基础设施上启动的任务 运行 Amazon ECS 容器代理的 1.21.0 版。有关详细信息,请参阅任务元数据端点版本 3。