簡體   English   中英

在 azure 中創建多個 su.net

[英]Creating Multiple subnet in azure


變量.tf

variable "vnet" {
  type        = map(any)
  description = "creating rg and vmet"
  default = {
    "rg1" = {
      vnet_name      = "vnet1"
      address        = ["10.0.0.0/16"]
      subnet_name    = ["snet1", "snet2"]
      subnet_address = ["10.1.0.0/24", "10.2.0.0/24"]
      location       = "south india"
    }
  }
}

主程序

resource "azurerm_subnet" "mysubnet" {
  for_each             = var.vnet
  name                 = each.value["subnet_name"]
  address_prefixes     = each.value["subnet_address"]
  address_prefixes     = each.value["subnet_address"]
  virtual_network_name = each.value["vnet_name"]
  resource_group_name  = each.key

}

錯誤:

Error: Incorrect attribute value type
    on main.tf line 25, in resource "azurerm_subnet" "mysubnet":
      name                 = each.value["subnet_name"]
      each.value["subnet_name"] is tuple with 2 elements

屬性“名稱”的值不合適:需要字符串。

如何迭代創建多個su.net?

您必須先展平您的變量。 例如:

locals {
  vnet_flat = merge([
     for group_name, details in var.vnet: 
      {for idx in range(length(details.subnet_name)):
          "${group_name}-${idx}" => {
              group_name = group_name
              vnet_name = details.vnet_name
              address = details.address
              subnet_name = details.subnet_name[idx]
              subnet_address = details.subnet_address[idx]
              location = details.location
          }
      }
  ]...)
}

resource "azurerm_subnet" "mysubnet" {
  for_each             = local.vnet_flat
  name                 = each.value.subnet_name
  address_prefixes     = [each.value.subnet_address]
  virtual_network_name = each.value.vnet_name
  resource_group_name  = each.value.group_name
}

...用於擴展 Function Arguments

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM