首页 > 解决方案 > 如何让 ECS 服务进行强制重新部署?

问题描述

我在 ECR 中有一个 docker 映像,我经常更新它。我希望 ECS 进行强制部署,以便让服务获取最新版本的映像。

该服务已签入 terraform,因此我宁愿让 terraform 为我完成繁重的工作,而不是编写脚本来强制重新部署。

如何利用 terraform 强制重新部署 ECS 服务?

标签: terraform

解决方案


我发现最有效的是污染任务定义

terraform taint -module=mysandbox aws_ecs_task_definition.sandbox
terraform apply

Terraform will perform the following actions:

  ~ module.mysandbox.aws_ecs_service.sandbox
      task_definition:       "some-old-arn" => "${aws_ecs_task_definition.sandbox.arn}"

-/+ module.mysandbox.aws_ecs_task_definition.sandbox (tainted) (new resource required)
      ...
      revision:              "3" => <computed>

如您所见,ecs_service 中的任务定义已更新为具有递增修订号的新任务定义。


推荐阅读