複数のコンポーネント グループのリモート状態を Terraform に保存するために、複数のストレージ コンテナーを作成しようとしています。
私の環境にはインフラストラクチャ、フロントエンド、バックエンド、および要塞 VM があり、それぞれに独自の .tf テンプレートがあるため、インフラストラクチャの機能単位として個別に展開できます。
後でさらにタイプを追加する必要があるかもしれません。これは、コンポーネント/環境のリストを変数として保存し、それをチャンクしてバックエンド ストレージ コンテナーを作成する必要があることを示唆しています。
ここでの主な前提は、同じストレージ アカウントを使用できるが、リモート状態ごとに個別のコンテナーが必要であるということです。
- その評価は本当ですか?
- コードの重複を最小限に抑えるリストまたはその他のデバイスを使用して、構文的にそれを達成するにはどうすればよいですか?
確かに私は Terraform の初心者なので、HCL の基本的な基礎を理解していないと思います。これが私のコードからの抜粋です:
variable "component" {
type = list
default = ["bastion", "frontproxy", "db", "infra"]
}
provider "azurerm" {
version = "~> 2.8"
features {}
}
resource "azurerm_storage_account" "sa" {
name = "${lower(var.naming_prefix)}${random_integer.sa_num.result}"
resource_group_name = azurerm_resource_group.setup.name
location = var.location
account_tier = "Standard"
account_replication_type = "LRS"
}
resource "azurerm_storage_container" "ct" {
#count = length(var.component)
name = "terraform-state${var.component}"
storage_account_name = azurerm_storage_account.sa.name
}
"count" (上記の例ではコメントアウトされています) や azurerm_storage_container.ct.name 内の要素の参照など、さまざまな表記法を試しましたが、効果がありませんでした。ここで何が欠けていますか?