0

リスト変数に基づいて多数のサブネットを作成するリソースをテラフォームで作成しようとしています。

既存のリソースへの参照に問題があります。たとえば、次のコードでは、network_security_group_id が azurerm_network_security_group.k8s.id にハードコーディングされています。

variable "resources_large" {
    description = "List of Large Networks" 
    default = [
      "k8s",
      "storm"
    ]
}

resource "azurerm_subnet" "large" {
  name                      = "ue-${var.environment}-${var.resources_large[count.index]}-subnet-${replace("${cidrsubnet("${local.subnet_ranges["large"]}", "${var.newbit_size["large"] }", count.index )}", "/[./]/", "-"  ) }"
  resource_group_name       = "ue-${var.environment}-${var.resources_large[count.index]}-rg"
  virtual_network_name      = "${azurerm_virtual_network.dev.name}"
  address_prefix            = "${cidrsubnet("${local.subnet_ranges["large"]}", "${var.newbit_size["large"] }", count.index )}"
  network_security_group_id = "${azurerm_network_security_group.k8s.id}"

  count  = "${length(var.resources_large)}"

  depends_on = ["azurerm_virtual_network.dev"]
}

これは、resources_large リストの名前に基づいて既存のセキュリティ グループを参照する必要があります。私が持ちたいのは、次のようなものです。

network_security_group_id = "${azurerm_network_security_group.${var.resources_large[count.index]}.id}"

これは機能しません。変数補間のサポートがないためだと思います。

変数に基づいて他のリソースを参照する方法はありますか?

4

1 に答える 1