サービスの 1 つを ECS (EC2) にデプロイするように設定しました。サービスとタスク定義は Terraform で設定しており、デプロイするには Github アクションを使用していますが、タスク定義を再度定義する必要があるようです。
両方とも必要なようですが、重複したタスク定義を削除するための正しいワークフローは何でしょうか?
また、このタスク定義が Github アクションを介してデプロイされると、イメージが更新され、Terraform がそれを元に戻そうとするという問題もあります。
答え1
これは古いものですが、将来の参考になります。
最初のものは、サービスを最初に起動するために必要です (事前構成されたクラスターを作成するときに)。
2番目のオプションは、サービスGitHub Actions のデプロイメント中に、イメージ ID と基本的にタスク定義の構成オプションとして持っているすべてのものを変更できるため、イメージの新しいバージョンをデプロイして、最初のバージョンを上書きします。
terraformに関しては、次のようなライフサイクルルールを追加して、事前設定されたimage_idへの変更を無視することができます。aws_ecs_サービス:
lifecycle {
ignore_changes = [task_definiton]
}
があるかなり古い問題タスク定義の変更をどのように処理するかについては、terraform-provider-awsプロジェクトで確認してください。このコメントあなたのユースケースに可能な回避策については(コメント投稿者からのトピックに関するブログ投稿)。
下を見ると別のコメントリンクすぐに使える Github Actions ソリューションと Terraform コードの例。