首页 > 解决方案 > AWS 使用更新的映像部署 ECS

问题描述

似乎必须为每个服务更新提供一个新的完整任务定义。即使大多数时候新部署只包含对底层 docker 映像之一的更新

虽然这是可以理解的核心架构选择。这很麻烦。由于任务定义的完整 JSON 规范非常复杂,是否有一个命令行选项可以使这更容易?

目前,开发人员需要提供复杂的脚本和部署编排来在他们的 CI/CD 流程中完成这个相对常规的任务

我看到了HereHere的尝试。这些解决方案似乎不适用于所有情况(例如,对于 Fargate 启动)

我知道,如果更新的图像使用重复使用相同的标签,这个问题会变得更容易,但是在重视可再现性和可听性的开发文化中,这根本不是一个合理的选择

除了利用 AWS API 和 JSON 操作库之外,没有其他选择吗?

编辑看来这个项目做得相当不错https://github.com/fabfuel/ecs-deploy

标签: amazon-web-servicescontinuous-deploymentamazon-ecs

解决方案


我找到了一些方法

  1. 正如我在评论中提到的,请使用Github 链接中的ecs-deploy脚本

  2. --generate-cli-skeleton通过awscli上的选项创建任务定义。填写除execution-rule-arntask-role-arnimage之外的所有详细信息

这些无法填写,因为它们会在每次提交或您要部署到的每个环境中发生变化

将此骨架提交到git,因此它是 CI 工作区的一部分

然后使用 JSON 遍历/解析库或实用程序(例如https://jqplay.org/)在 CI 上的构建时替换 roleArn 和图像名称


推荐阅读