AWS ECS 任务定义工作流程

AWS ECS 任务定义工作流程

我已经设置了要部署到 ECS (EC2) 的一项服务。我已通过 terraform 配置了服务和任务定义,然后为了部署,我使用了 Github 操作,似乎我需要再次定义任务定义。

似乎两者都是必需的,什么是正确的工作流程,以便我可以删除重复的任务定义?

还有一个问题是,一旦这个任务定义通过 Github 操作部署,图像就会被更新,而 Terraform 想要恢复。

答案1

这是一个旧的,但可供将来参考。

第一个是为了最初启动服务所必需的(在创建预配置集群时)。

你可以考虑第二个作为更新你的服务在 GitHub Actions 部署期间,使用新版本映像覆盖初始版本(因为您可以更改映像 ID 以及任务定义中配置选项中的所有内容)。

对于 Terraform,您可以添加生命周期规则以忽略对预配置 image_id 的任何更改,如下所示aws_ecs_service

  lifecycle {
    ignore_changes = [task_definiton]
  }

相当老的问题在 terraform-provider-aws 项目中,关于它如何处理任务定义更改。请查看此评论为您的用例提供可能的解决方法(评论作者关于该主题的博客文章)。

下面你可以看到另一条评论链接带有 terraform 代码示例的现成 Github Actions 解决方案。

相关内容