对于 Amazon EC2 上的 Amazon ECS 任务,您的容器实例需要版本 1.39.0 或更高版本的容器代理才能使用此功能。有关如何检查您的代理版本并更新到最新版本的信息,请参阅 更新 Amazon ECS 容器代理

对于 AWS Fargate 上的 Amazon ECS 任务,您的任务必须使用平台版本 1.4.0 或更高版本(Linux)来使用此功能。有关更多信息,请参阅 适用于 Amazon ECS 的 Fargate 平台版本

验证操作系统平台是否支持该变量。有关更多信息,请参阅 容器定义 其他任务定义参数

该文件必须使用 .env 文件扩展名和 UTF-8 编码。

该任务执行角色需要使用此功能和 Amazon S3 的额外权限。这允许容器代理从 Amazon S3 中提取环境变量文件。有关更多信息,请参阅 Amazon ECS 任务执行 IAM 角色

每个任务定义最多只能有 10 个文件。

环境文件中的每一行都必须包含 VARIABLE=VALUE 格式的环境变量。空格或引号作为 Amazon ECS 文件的值的一部分 包含 。以开头的行 # 被视为注释并会被忽略。有关环境变量文件语法的更多信息,请参阅 Docker 文档中的 Set environment variables (-e, --env, --env-file)

以下是合适的语法。

#This is a comment and will be ignored VARIABLE=VALUE ENVIRONMENT=PRODUCTION

如果在容器定义中存在使用 environment 参数指定的环境变量,则这些变量的优先级高于环境文件中包含的变量。

如果指定了多个环境文件并且其中包含相同变量,则会按输入顺序处理这些文件。这意味着将使用变量的第一个值,并忽略重复变量的后续值。建议您使用唯一的变量名。

如果将环境文件指定为容器覆盖,则将使用它。此外,容器定义中指定的任何其他环境文件都将被忽略。

以下规则适用于 Fargate 启动类型:

"environmentFiles": [ "value": "arn:aws:s3::: amzn-s3-demo-bucket / envfile_object_name.env ", "type": "s3"