如何在ECS任务定义命令中转义逗号

use*_*376 3 amazon-ecs ecs-taskdefinition

我有 docker 镜像和命令:

celery -A bits.payment_tracking.app:app worker -l debug -Q celery,reports --concurrency 3
Run Code Online (Sandbox Code Playgroud)

它在 docker 和 docker-compose 中完美运行。但它在 AWS ECS 任务定义中不起作用,因为 ECS 需要用逗号分隔来定义它,如下所示:

celery,-A,bits.payment_tracking.app:app,worker,-l,debug,-Q,celery,reports,--concurrency,3
Run Code Online (Sandbox Code Playgroud)

并且此命令不起作用,因为-Q celery,reportsECS 始终以逗号分隔。我知道很多解决方法,但我找不到一个问题的答案 - 如何在任务定义命令中转义逗号分隔?

感谢您的帮助。

小智 8

在任务定义中,选择最新修订版本并单击“创建新修订版本”。在“创建任务定义的新版本”页面上,单击您的容器名称以打开容器编辑器。在“环境”>“命令”下添加逗号分隔的队列命令,例如 php,artisan,queue:work,--tries=1,--queue=queue1,queue2,queue3 单击“更新”以保存容器。滚动到任务定义编辑器的底部,然后单击“通过 JSON 配置”,这将打开 JSON 编辑器。手动更改命令参数以满足要求,例如

"command": [
                "php",
                "artisan",
                "queue:work",
                "--tries=1",
                "--queue=queue1,queue2,queue3"
            ],
Run Code Online (Sandbox Code Playgroud)

保存 JSON,然后单击“创建”以创建修订版本。