You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform Azure中如何自动获取Host Pool列表的ID值

Terraform自动获取批量创建的Azure虚拟桌面Host Pool ID方案

假设你已通过for_each批量创建Host Pool,比如:

resource "azurerm_virtual_desktop_host_pool" "host_pools" {
  for_each = {
    host_pool_security = "Security-Team-Pool"
    host_pool_finance  = "Finance-Team-Pool"
    host_pool_hr       = "HR-Team-Pool"
  }

  name                = each.value
  location            = azurerm_resource_group.vd_rg.location
  resource_group_name = azurerm_resource_group.vd_rg.name
  type                = "Pooled"
  load_balancer_type  = "DepthFirst"
}

以下是两种自动获取所有Host Pool ID的方案:

方法1:直接提取所有ID列表

用values()函数遍历批量创建的资源实例,提取所有id属性生成列表:

locals {
  all_host_pool_ids = values(azurerm_virtual_desktop_host_pool.host_pools)[*].id
}

关联应用组时直接引用这个局部变量即可,比如批量创建对应应用组:

resource "azurerm_virtual_desktop_application_group" "app_groups" {
  for_each = toset(local.all_host_pool_ids)

  name                = "AppGroup-${replace(each.value, "/", "-")}"
  location            = azurerm_resource_group.vd_rg.location
  resource_group_name = azurerm_resource_group.vd_rg.name
  type                = "RemoteApp"
  host_pool_id        = each.value
}

方法2:带筛选条件的灵活提取

如果需要筛选特定Host Pool(比如按键名前缀、资源属性),用for表达式自定义规则:

locals {
  filtered_host_pool_ids = [
    for key, pool in azurerm_virtual_desktop_host_pool.host_pools : pool.id
    if startswith(key, "host_pool_") # 按键名前缀筛选
    # 也可以按资源属性筛选,比如 if pool.type == "Pooled"
  ]
}

进阶:直接关联Host Pool与应用组

如果应用组需要和Host Pool一一对应,无需单独提取ID,直接复用Host Pool的for_each集合:

resource "azurerm_virtual_desktop_application_group" "app_groups" {
  for_each = azurerm_virtual_desktop_host_pool.host_pools

  name                = "${each.key}-app-group"
  location            = azurerm_resource_group.vd_rg.location
  resource_group_name = azurerm_resource_group.vd_rg.name
  type                = "RemoteApp"
  host_pool_id        = each.value.id
}

内容的提问来源于stack exchange,提问作者Hamma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 23:42:39