I am trying to create 3 subnets from a VNET address space in Azure
Below is my code
locals {
subnets = {
"snet-general-prod-cus-5315" = {
cidrs = [cidrsubnet(data.azurerm_virtual_network.default.address_space[0],3,0)]
service = { endpoints = [
"Microsoft.KeyVault",
"Microsoft.Storage",
"Microsoft.Web",
"Microsoft.EventHub",
"Microsoft.Sql",
"Microsoft.AzureCosmosDB"
],
delegations = {}
}
}
"snet-webapp-prod-cus-6401" = {
cidrs = [cidrsubnet(data.azurerm_virtual_network.default.address_space[0],3,1)]
service = { endpoints = [ ],
delegations = {
"Microsoft.Web/serverFarms" = {
actions = ["Microsoft.Network/virtualNetworks/subnets/action"]
name = "Microsoft.Web/serverFarms"
}
}
}
}
"snet-sqlmi-prod-cus-5951" = {
cidrs = [cidrsubnet(data.azurerm_virtual_network.default.address_space[0],3,2)]
service = { endpoints = [ ],
delegations = {
"Microsoft.Sql/managedinstances" = {
actions = ["Microsoft.Network/virtualNetworks/subnets/action"]
name = "Microsoft.Sql/managedinstances"
}
}
}
}
}
}
data "azurerm_virtual_network" "default" {
name = local.virtual_network_name
resource_group_name = local.managed_resource_group_name
}
resource "azurerm_subnet" "default" {
for_each = local.subnets
name = local.subnets[each.key]
address_prefixes = local.subnets[each.key].cidrs
resource_group_name = local.managed_resource_group_name
virtual_network_name = data.azurerm_virtual_network.default.name
}
│ ├────────────────
│ │ each.key is "snet-sqlmi-prod-cus-5951"
│ │ local.subnets is object with 3 attributes
│
│ Inappropriate value for attribute "name": string required.
╵
╷
│ Error: Incorrect attribute value type
│
│ on resources.vnet.tf line 60, in resource "azurerm_subnet" "default":
│ 60: name = local.subnets[each.key]
│ ├────────────────
│ │ each.key is "snet-general-prod-cus-5315"
│ │ local.subnets is object with 3 attributes
│
│ Inappropriate value for attribute "name": string required.