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 =

我已经用terraform创建了大量azure子网,但我需要将它们全部拆分到两个路由表中

目前我有这样的代码,但当然,资源的输出不是列表,而是对象

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。我添加了一些代码来显示子网的生成