繁体   English   中英

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM