gpt4 book ai didi

azure - 使用 terraform 在 Azure 中创建网络接口(interface)时,使用现有的子网详细信息而不是再次创建

转载 作者:行者123 更新时间:2023-12-02 08:02:41 25 4
gpt4 key购买 nike

我正在尝试使用以下脚本通过 terraform 在 Azure 中创建网络接口(interface):

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 并在 ipconfiguration 中分配该 Subnet.id

但是,如果我必须通过具有相同 Subnet1 的另一个 .tf 文件再次创建另一个网络接口(interface),我该如何获取 ${azurerm_subnet.再次输入internal.id}值。

也就是说,如果子网已经存在并且我不想创建它,如何设置这些值并使用它们?

编辑

我发现,在 powershell 中,这是用于确定子网 id 的脚本:

$vnetId= "[resourceId("VNetRG",'Microsoft.Network/virtualNetworks', "VNetName")]"
$subnetRef = "[concat($vnetId, '/subnets/', "Subnet1")]"

其中 VNetRG - VNet 资源组,
VNetName - VNet 的名称,
Subnet1 - 子网名称。

谁能告诉我 terraform 中的等效脚本是什么?

最佳答案

使用 subnet data source :

data "azurerm_subnet" "subnet1" {
name = "Subnet1"
virtual_network_name = "${var.VNetName}"
resource_group_name = "${var.VNetResourceGroup}"
}

然后在您的 NIC 代码中使用

引用它
subnet_id  = "${data.azurerm_subnet.subnet1.id}"

关于azure - 使用 terraform 在 Azure 中创建网络接口(interface)时,使用现有的子网详细信息而不是再次创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52421779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com