对于 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"