如何运行AWS ECS任务重写环境variables
要通过CLI覆盖环境variables,我们可以根据AWS ECS命令行参考使用--overrides (structure)
。
如何在命令行中传递名称值对(结构或JSON)?
[ { "name" : "NAME", "value" : "123" }, { "name" : "DATE", "value" : "1234-12-12" }, { "name" : "SCRIPT", "value" : "123456" } ]
我正在寻找一种方法来使用AWS ECS CLI覆盖以上环境variables。 就像是:
aws ecs run-task --overrides <<just environment vars here>> --task-definition ...
文档不清楚。 我GOOGLE了,但忍不住。
您必须提供一个JSON文档,如--overrides
选项中所述 。
{ "containerOverrides": [ { "name": "string", "command": ["string", ...], "environment": [ { "name": "string", "value": "string" } ... ] } ... ], "taskRoleArn": "string" }
您必须指定容器的name
以获取环境重写,并指定environment
键值对的列表。
您可以指定与您的参数串联的JSON文档或将文件pathparameter passing给任务。 我将展示两种方式。
在线传递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中引用转义。
或者,您可以将文件path传递给AWS CLI,并从文件加载您的重写JSON。
传递一个文件path参数
创build一个文件,我们把它叫做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 (..)
- 无法使用AWS Java API读取图像的LABEL键和特定图像的值
- 如何捕获在ECS上启动的容器的控制台输出?
- kubernetes和GKE有什么区别?
- 如何从外部机器ssh到一个ec2 ubuntu主机上的docker集装箱
- Ejabberd与外部客户5280但不5222 Conenct
- oci运行时错误:container_linux.go:247:启动容器进程导致“exec:\”nodemon \“:在$ PATH中找不到可执行文件”
- Amazon ECS – dockerlogin未经授权:需要身份validation
- 无法在“任务定义”中启动并重新注册ECS容器
- 在docker容器中删除的文件没有释放空间