ECS Fargate 任务定义中的环境变量是否支持插值?

问题描述 投票:0回答:1

给定 S3 中的

.env
对象以及一些环境变量:

POSTGRES_HOSTNAME=staging.cxxxxx.us-east-1.rds.amazonaws.com
POSTGRES_PASSWORD=xxxxxx
DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@${POSTGRES_HOSTNAME}:5432/postgres?schema=newjitsu

ECS 任务定义配置为使用该对象来指定容器的环境变量。

当我部署任务时,我在容器日志中收到以下错误:

Error: P1001: Can't reach database server at ${POSTGRES_HOSTNAME}:5432

让我相信 ECS/Fargate 支持变量插值。

AWS ECS 文档指出:

有关环境变量文件语法的更多信息,请参阅在文件中声明默认环境变量

带有 Docker Compose 变量文档的链接,该文档描述了变量插值

确实如此,AWS 文档没有明确声明支持插值,但也没有明确声明不支持插值。

有人可以确认ECS/Fargate是否支持环境变量插值吗?

谢谢!

amazon-web-services amazon-ecs aws-fargate
1个回答
0
投票

不,它本身不支持变量插值。 您仍然需要在应用程序使用 .env 文件之前对其进行预处理。 您可以打赌,如果这是他们支持的功能,他们会宣传/记录它。

您可以设置任务定义环境变量(或机密)以从 SSM Parameter Store 或 Secrets Manager 中提取。 然后这些将在您的容器中可用,但如果您需要在 .env 文件中使用它们,则必须将它们放在那里。

另请参阅 AWS ECS 任务定义:如何在另一个环境变量中引用一个环境变量?

© www.soinside.com 2019 - 2024. All rights reserved.