Azure 两个路由表之间的地形分割子网
我已经用terraform创建了大量azure子网,但我需要将它们全部拆分到两个路由表中 目前我有这样的代码,但当然,资源的输出不是列表,而是对象Azure 两个路由表之间的地形分割子网,azure,terraform,infrastructure-as-code,Azure,Terraform,Infrastructure As Code,我已经用terraform创建了大量azure子网,但我需要将它们全部拆分到两个路由表中 目前我有这样的代码,但当然,资源的输出不是列表,而是对象 resource "azurerm_subnet_route_table_association" "subnet-to-rt1" { for_each = tolist(chunklist(azurerm_subnet.subnets, 255)[0]) subnet_id =
resource "azurerm_subnet_route_table_association" "subnet-to-rt1" {
for_each = tolist(chunklist(azurerm_subnet.subnets, 255)[0])
subnet_id = (chunklist(azurerm_subnet.subnets, 20)[0])[each.key].id
route_table_id = module.spoke.route_table_1
}
resource "azurerm_subnet_route_table_association" "subnet-to-rt2" {
for_each = tolist(chunklist(azurerm_subnet.subnets, 20)[1])
subnet_id = (chunklist(azurerm_subnet.subnets, 20)[1])[each.key].id
route_table_id = module.spoke.route_table_2
}
编辑:
生成子网以明确问题的代码。
我在斜杠/18范围内提供var.spoke\u cidr以获得/27
resource "azurerm_subnet" "subnets" {
for_each = toset(slice(cidrsubnets(var.spoke_cidr, [for v in range(20) : 9]...), 2, length(cidrsubnets(var.spoke_cidr, [for v in range(20) : 9]...))))
name = "az-subnet-${index(slice(cidrsubnets(var.spoke_cidr, [for v in range(20) : 9]...), 2, length(cidrsubnets(var.spoke_cidr, [for v in range(20) : 9]...))), each.key)}"
resource_group_name = module.spoke.azure_rg.name
virtual_network_name = module.spoke.vnet.name
address_prefixes = [each.value]
}
为每个路由表关联资源获取的错误代码为
Invalid value for "list" parameter: list of any single type required.
有人知道我如何修复这个路由表关联吗
谢谢 修理什么?你没有提供多少信息?所有输入变量的值是多少?你有什么错误?如果不清楚,我很抱歉。我试图做的是将大量的子网和其中的一半关联到每个路由表,这样前10个应该转到第一个路由表,最后10个应该转到第二个路由表,因此尝试使用chunklist。我添加了一些代码来显示子网的生成