いくつかのコンテナを AWS ECS にデプロイするための Terraform 構成を構築しています。明らかに、Docker イメージを ECR にプッシュする必要があります。ECR にリポジトリを作成し、イメージをプッシュしました。
今、私は自動化しています。aws_ecr_repository
私がそのように宣言した場合:
data "aws_ecr_repository" "service" {
name = "myrepository"
}
その後、Terraform がそれを管理します。最終的には次のようなもので参照できます
image = "${aws_ecr_repository.myrepository.repository_url}"
ECS タスク定義の構築中。
terraform destroy
開発サイクルの一環として実行すると、Terraform がこのリポジトリを削除するか、イメージがある場合は失敗するという印象を受けます。これはterraform destroy
、決して完了しないか、そのコマンドを正常に完了するために ECR リポジトリをクリアする必要があるため、悪いことです。
すでに存在する ECR リポジトリを参照するにはどうすればよいでしょうか。しかし、Terraform は Terraform の外部に存在するデータ、つまりリリース CI ジョブによってアップロードされた Docker イメージを破壊する可能性があるため、Terraform で管理したくないようです。