从具有多个子网的虚拟网络中选择特定子网 ID

425*_*von 7 terraform terraform-provider-azure

我想引用另一个资源块中的 id subnet 2,但子网没有索引值。即“${azurerm_virtual_network.test.subnet.2.id}”将不起作用。

resource "azurerm_virtual_network" "test" {
  name                = "virtualNetwork1"
  location            = "${azurerm_resource_group.test.location}"
  resource_group_name = "${azurerm_resource_group.test.name}"
  address_space       = ["10.0.0.0/16"]
  dns_servers         = ["10.0.0.4", "10.0.0.5"]

  subnet {
    name           = "subnet1"
    address_prefix = "10.0.1.0/24"
  }

  subnet {
    name           = "subnet2"
    address_prefix = "10.0.2.0/24"
  }

  subnet {
    name           = "subnet3"
    address_prefix = "10.0.3.0/24"
    security_group = "${azurerm_network_security_group.test.id}"
  }
}
Run Code Online (Sandbox Code Playgroud)

425*_*von 6

借助azurerm_virtual_network #1913 中定义的嵌入式子网的公开 ID解决

...
subnet_id = "${azurerm_virtual_network.test.subnet.*.id[1]}"
...
Run Code Online (Sandbox Code Playgroud)

  • 它有效,但你能解释一下“*”语义吗 (2认同)