要通过CLI覆盖环境变量,我们可以根据AWS ECS Commandline Reference使用–overrides(structure).
如何在命令行中传递名称值对(结构或JSON)?
[
{ "name" : "NAME","value" : "123" },{ "name" : "DATE","value" : "1234-12-12" },{ "name" : "SCRIPT","value" : "123456" }
]
我正在寻找一种使用AWS ECS CLI覆盖上述环境变量的方法.
就像是:
aws ecs run-task --overrides <
您必须提供
原文链接:https://www.f2er.com/docker/436965.html--overrides
option下记录的JSON文档.
{
"containerOverrides": [
{
"name": "string","command": ["string",...],"environment": [
{
"name": "string","value": "string"
}
...
]
}
...
],"taskRoleArn": "string"
}
您必须指定容器的名称以获取环境覆盖,并指定环境键 – 值对的列表.
您可以在参数中指定JSON文档,也可以将文件路径参数传递给任务.我将展示两种方式.
在线传递JSON
您的命令将如下所示(填写值CONTAINER_NAME_FROM_TASK).
aws ecs run-task --overrides '{ "containerOverrides": [ { "name": "CONTAINER_NAME_FROM_TASK","environment": [ { "name": "NAME","value": "123" },{ "name": "DATE","value": "1234-12-12" },{ "name": "SCRIPT","value": "123456" } ] } ] }' --task-definition (...)
虽然这确实看起来很丑陋,但编辑起来很烦人.它也只适用于Unix-y系统,并且需要在Windows中引用转义.
因此,您也可以将文件路径传递给AWS CLI,并让它从文件加载覆盖JSON.
传递文件路径参数
创建一个文件,让我们将其命名为overrides.json,并将相同的JSON放入其中:
{
"containerOverrides": [{
"name": "CONTAINER_NAME_FROM_TASK","environment": [{
"name": "NAME","value": "123"
},{
"name": "DATE","value": "1234-12-12"
},{
"name": "SCRIPT","value": "123456"
}]
}]
}
然后,假设您的文件位于当前目录中:
aws ecs run-task --overrides file://overrides.json --task-definition (..)
如果您的文件位于文件系统的其他位置,并且您使用的是Linux / Unix-y系统:
aws ecs run-task --overrides file:///path/to/overrides.json --task-definition (..)
如果您的文件位于文件系统的其他位置,并且您在Windows中执行此操作:
aws ecs run-task --overrides file://DRIVE_LETTER:\path\to\overrides.json --task-definition (..)