我已將一項服務設定為部署到 ECS (EC2)。我透過 terraform 配置了服務和任務定義,然後使用 Github 操作進行部署,似乎我需要再次定義任務定義。
似乎兩者都是必需的,正確的工作流程是什麼,以便我可以刪除重複的任務定義?
還有一個問題是,一旦透過 Github 操作部署此任務定義,映像就會更新,而 terraform 想要恢復。
答案1
這是舊的,但供將來參考。
為了最初啟動服務(在建立預先配置的叢集時),需要第一個。
您可以考慮將第二個選項作為更新您的服務在 GitHub Actions 部署期間(部署映像的新版本)覆蓋初始版本(因為您可以變更映像 ID 以及任務定義中作為配置選項的所有內容)。
對於 terraform,您可以新增生命週期規則來忽略對預先配置 image_id 的任何更改,在aws_ecs_服務:
lifecycle {
ignore_changes = [task_definiton]
}
有一個很老的問題在 terraform-provider-aws 專案中了解它如何處理任務定義變更。看一眼這則評論為您的用例提供可能的解決方法(評論作者關於該主題的部落格文章)。