Terraform 输出多个子网 ID

Terraform Output multiple subnet ids

我是 terraform 的新手,我正在尝试学习和编写 TF 代码来自动化 Azure VM 部署。我试图将每个部分都作为模块(rg 除外)进行覆盖,而不是将其保存在单个 main.tf 文件中。

我正在创建一个内部有 3 个子网的 Vnet。 请找到我的子网模块代码。请帮我解决以下两点。

Subnet.tf

resource "azurerm_subnet" "SUBNETS" {
for_each=var.Subnetlist
name=each.value.name
address_prefixes=[each.value.address]
  resource_group_name  = var.resource_group_name
  virtual_network_name = var.virtual_network_name
}

NIC.tf

resource "azurerm_network_interface" "NETWORKINTERFACE" {
  for_each=var.niclist
  name                = each.value.name
  location            = var.location
  resource_group_name = var.resource_group_name

  ip_configuration {
    name                          = "ipconfig1"
    subnet_id                     = 
    private_ip_address_allocation = "Dynamic"
  }
}
  1. 如何输出 subnet_ids(三个创建的子网)。
  2. 如何将这些 subnet_ids 传递给另一个模块(比如创建网络接口)
  1. 因为你的azurerm_subnet.SUBNETS是一张地图,因为使用了for_each
output "subnet_ids" {
   value = values(azurerm_subnet.SUBNETS)[*].id
}
  1. 您将其作为任何其他变量传递:
module "myothermodule" { 
  source = "./modulepath"
  subnets_ids = module.mysubnetmodule.subnet_ids
}