我正在尝试使用以下脚本通过Terraform在Azure中创建网络接口:
resource "azurerm_subnet" "internal" {
name = "Subnet1"
resource_group_name = "${var.VNetResourceGroup}"
virtual_network_name = "${var.VNetName}"
address_prefix = "10.0.2.0/24"
}
resource "azurerm_network_interface" "main" {
name = "${var.prefix}-nic"
location = "${var.location}"
resource_group_name = "${var.resourceGroup}"
ip_configuration {
name = "ipconfig1"
subnet_id = "${azurerm_subnet.internal.id}"
private_ip_address_allocation = "dynamic"
}
}
此脚本创建子网Subnet1
,并在Subnet.id
中分配该ipconfiguration
。
但是,如果我必须通过另一个具有相同.tf
的{{1}}文件再次创建另一个网络接口,我该如何再次获得Subnet1
值。
如果子网已经存在并且我不想创建它,那么如何设置这些值并使用它们?
编辑
我发现,在Powershell中,这是用于确定子网ID的脚本:
${azurerm_subnet.internal.id}
其中VNetRG-VNet的资源组,
VNetName-VNet的名称,
子网1-子网名称。
谁能告诉我terraform中的等效脚本是什么?
答案 0 :(得分:1)
data "azurerm_subnet" "subnet1" {
name = "Subnet1"
virtual_network_name = "${var.VNetName}"
resource_group_name = "${var.VNetResourceGroup}"
}
然后使用
在您的NIC代码中引用它subnet_id = "${data.azurerm_subnet.subnet1.id}"