Azure Terraform从现有VNET/子网检索CIDR/前缀

Azure Terraform从现有VNET/子网检索CIDR/前缀,azure,terraform,Azure,Terraform,在Terraform中,我想为现有子网创建一个路由表。为了获得期望的最终结果,我需要为VNET提取CIDR/前缀。VNET CIDR值事先不知道,在启动之前我只知道VNET的名称和资源组 我希望使用VNET CIDR/前缀,并将其作为目的地插入路由表中 data "azurerm_virtual_network" "vnet" { name = "${var.vnet_name}" resource_group_name = "${var.vnet_rg

在Terraform中,我想为现有子网创建一个路由表。为了获得期望的最终结果,我需要为VNET提取CIDR/前缀。VNET CIDR值事先不知道,在启动之前我只知道VNET的名称和资源组

我希望使用VNET CIDR/前缀,并将其作为目的地插入路由表中

data "azurerm_virtual_network" "vnet" {
  name                 = "${var.vnet_name}"
  resource_group_name  = "${var.vnet_rg}"
}

module "routetable" {
  source                  = "modules/routetable"
  route_table_name        = "${var.route_table_name}"
  resource_group_name     = 
"${data.azurerm_resource_group.vnet.name}"
  location                = "eastus"
  route_prefixes          = ["0.0.0.0/0", "${EXISTING_VNET_CIDR_HERE}"]


  route_nexthop_types     = ["VirtualAppliance", "VirtualAppliance"]
  route_names             = ["route1", "route2"]
}

只需使用您从vnet获取的数据:

${data.azurerm_virtual_network.vnet.address_spaces}

唯一的问题-ASRESS_spaces是一个数组(我认为它在terraforms术语中被称为list)。

只需使用从vnet获得的数据即可:

${data.azurerm_virtual_network.vnet.address_spaces}

唯一的问题是数组(我认为它在terraforms中被称为列表)。

工作起来很有魅力。我使用的是.vnet.address_空间,而不是.vnet.address_空间。Terraform关于属性ID的文档使用地址空间。。。很有趣,很有魅力。我使用的是.vnet.address_空间,而不是.vnet.address_空间。Terraform关于属性ID的文档使用地址空间。。。有趣。