![](/img/trans.png)
[英]How to create a new revision of a task definition in ecs using aws cli?
[英]AWS CLI - Create New Revision of Task Definition
在具有 UI 的 AWS ECS 中,我可以创建任务定义的新修订版。 我 go 到任务定义 -> Select 我的任务定义 -> Select 我的修订 -> 单击创建新修订。
使用 AWS UI,容器定义属性从旧版本复制到新版本。
使用 AWS CLI,我如何将容器定义从旧修订复制到新修订? 有没有我可以使用的简单 CLI 命令,而无需从旧定义中手动提取属性然后创建新定义?
到目前为止,这是我的 AWS CLI 解决方案:
我得到的图像是:
aws ecr describe-images ...
以及容器定义:
aws ecs describe-task-definition ...
然后我提取容器定义属性,将它们放在 json 字符串 $CONTAINER_DEFINITION 中,然后创建一个新修订:
aws ecs register-task-definition --family $TASK_DEFINITION --container-definitions $CONTAINER_DEFINITION
当我检查 UI 时,旧版本的容器定义属性不会复制到新版本的容器定义中。 我希望将容器定义属性从旧版本复制到新版本,因为这与 AWS UI 的行为相同。
我正在尝试做完全相同的事情——使用更新的容器版本创建现有任务定义的新修订版。 我怀疑您的方法是注册一个全新的任务定义,而不是创建现有任务定义的增量版本。
更新...使用 Powershell 和 AWS CLI 设法让它工作。 下面的 PS 命令读取任务定义,编辑容器定义中的容器版本,然后获取容器定义为 JSON 并将它们传回注册命令。
$taskDef = aws ecs describe-task-definition --task-definition <task definition name> --region=eu-west-1 | ConvertFrom-Json
$taskDef.taskDefinition.containerDefinitions[0].image = "<container>:<version>"
$containerDefinitions = $taskDef.taskDefinition.containerDefinitions | ConvertTo-Json -Depth 10
aws ecs register-task-definition --family "<task definition name>" --container-definitions $containerDefinitions --memory 8192
生成修订(而不是新任务定义)的技巧似乎是设置为现有任务定义名称的family
参数。 不知道为什么它需要 memory 参数,但它起作用了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.