簡體   English   中英

使用現有子網詳細信息,而不是在使用Terraform在Azure中創建網絡接口時再次創建

[英]Use the existing Subnet details instead of creating again while creating Network Interface in Azure using terraform

我正在嘗試使用以下腳本通過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"
  }
}

該腳本創建Subnet Subnet1並在ipconfiguration分配該Subnet.id

但是,如果必須通過另一個具有相同Subnet1 .tf文件再次創建另一個網絡接口,該如何再次獲得${azurerm_subnet.internal.id}值。

也就是說,如果子網已經存在並且我不想創建它,那么如何設置這些值並使用它們?

編輯

我已經知道,在Powershell中,這是用於確定子網ID的腳本:

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

其中VNetRG-VNet資源組,
VNetName-VNet的名稱,
子網1-子網名稱。

誰能告訴我terraform中的等效腳本是什么?

使用子網數據源

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

然后在您的NIC代碼中引用它

subnet_id  = "${data.azurerm_subnet.subnet1.id}"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM