azure - Terraform 输出多个子网 ID

标签 azure terraform terraform-provider-azure

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

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

子网.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
}

网卡.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_id传递给另一个模块(例如创建网络接口(interface))

最佳答案

  1. 由于使用 for_each,您的 azurerm_subnet.SUBNETS 是一张 map :
output "subnet_ids" {
   value = values(azurerm_subnet.SUBNETS)[*].id
}
  • 将其作为任何其他变量传递:
  • module "myothermodule" { 
      source = "./modulepath"
      subnets_ids = module.mysubnetmodule.subnet_ids
    }
    

    关于azure - Terraform 输出多个子网 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71115148/

    相关文章:

    azure - 如何从 DataBricks 中删除自动集群?

    java - 无法使用 Java(JDBC) 连接 Azure 数据库

    javascript - Bot Framework v4 - 发起与用户的聊天(主动消息)

    terraform - 在 Terraform 0.12 中合并两张 map 以创建第三张 map

    azure - 在 terraform 中我应该如何使用 azure_function_endpoint

    带有 agic 的 Azure AKS - 如何使用 Terraform 创建它?

    azure - 如何从其他 terraform 部署创建的 keyvault 获取 secret 值?

    python - Flask RESTful API : Issue with db connection pool

    amazon-s3 - Terraform aws_iam_policy_document 条件正确的语法

    azure - 更新 Terraform 中现有的 Azure 应用服务