如何获取AWS ECS 容器中 ECS_CONTAINER_METADATA_URI_V4 的值?

如何获取AWS ECS 容器中 ECS_CONTAINER_METADATA_URI_V4 的值?

这个问题很简单,但了解一点背景知识总是有帮助的。我需要从容器本身获取容器 ID,并将其值用作日志文件名。根据文档 ECS_CONTAINER_METADATA_URI_V4注入到每个容器中。但是当我通过 SSH 连接到 Fargate 托管的容器时,没有这样的变量。这是意料之中的,我已经创建了话题为此,我先确保我的猜测是正确的。

那么,有没有办法获得ECS_CONTAINER_METADATA_URI_V4

答案1

我很确定应用程序在容器中运行将具有该环境变量。

问题在于ssh 和 bash在获取 shell 之前清除/清理环境变量。我建议您在基于 EC2 的 ECS 上运行该任务进行测试(即不在 Fargate 上)并docker exec -it {container} bash进入其中 - 您很可能会ECS_CONTAINER_METADATA_URI_V4在环境中找到。

顺便说一句 - 通过 ssh 进入容器是一种不好的做法。容器是不可变的,不应该有交互式访问。

希望有帮助:)

答案2

现在,我ECS_CONTAINER_METADATA_URI_V4通过在容器启动时将其保存到文件中来持久化该值: echo ${ECS_CONTAINER_METADATA_URI_V4} > metadata_url.txt

这样我就可以访问它了。

相关内容