【发布时间】:2019-08-27 05:51:50
【问题描述】:
我知道 AWS CodePipeline 支持更新 ECS 服务。
如果我想更新不包含服务定义的 ECS 计划任务怎么办?
【问题讨论】:
标签: amazon-web-services cron scheduled-tasks amazon-ecs aws-codepipeline
我知道 AWS CodePipeline 支持更新 ECS 服务。
如果我想更新不包含服务定义的 ECS 计划任务怎么办?
【问题讨论】:
标签: amazon-web-services cron scheduled-tasks amazon-ecs aws-codepipeline
事实证明,CodePipeline 不支持部署到计划任务。相反,您必须在 ECS 计划任务的任务定义中指定一个静态标签(例如latest),然后通过相应地设置镜像拉取策略来确保它始终拉取最新的镜像。 (默认策略应该有效,但不能保证如果拉取失败,缓存的图像将不会运行)。
【讨论】:
由于您的 ECS 计划任务始终使用最新的镜像,您只需在 CodePipeline 中包含 CodeCommit 和 CodeBuild,然后跳过 CodeDeploy。 您的 CodeBuild 应包含构建最新映像的 buildspec.yml 文件。 CodeBuild 将最新的映像推送到您的 ECR。 因此,当您 git push 向 repo 提交提交时,管道会触发构建新映像的 CodeBuild,因此下次运行 ECS 计划任务时,它会使用来自 ECR 的新映像。
【讨论】: