我想使用 azurerm_virtual_network 数据源从Azure中的现有VNET检索/提取子网ID。我的以下代码无法正常工作。任何帮助表示赞赏。
data "azurerm_virtual_network" "vnet" {
name = "my-vnet"
resource_group_name = "my-resource-group"
}
output "my-subnets-ids" {
value = "${data.azurerm_virtual_network.vnet.subnets.id}"
}
我执行时收到以下错误。
output.my-subnets: Resource 'data.azurerm_virtual_network.vnet'
does not have attribute 'subnets.id' for variable
'data.azurerm_virtual_network.vnet.subnets.id'
答案 0 :(得分:1)
我会将其与subnet数据资源结合起来,并使用它来获取所有ID。这段代码很接近,我没有时间把它整理起来并弄清楚完整的语法。
data "azurerm_subnet" "test" {
name = "${data.azurerm_virtual_network.vnet.subnets[count.index]}"
virtual_network_name = "${data.azurerm_virtual_network.vnet.name}"
resource_group_name = "${data.azurerm_virtual_network.vnet.resource_group_name"
count = "${count(data.azurerm_virtual_network.vnet.subnets)}"
}
output "subnet_ids" {
value = "${data.azurerm_subnet.test.*.id}"
}
答案 1 :(得分:0)
根据this,它仅包含子网名称列表,而不包含其ID,因此您需要手动构建子网。最简单的方法-使用vnet.id并添加'/subnets/${each subnet name goes here}'
答案 2 :(得分:0)
您可以通过以下方式获得:
data.azurerm_virtual_network.vnet.subnet.*.id
这将是一个列表,要获取第一个成员,请使用:
data.azurerm_virtual_network.virtualNetwork1.subnet.*.id[0]