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

Terraform中如何为for_each资源配置动态条件depends_on依赖

Terraform for_each 场景下动态设置 depends_on

Terraform 的 depends_on 要求依赖列表在计划阶段可确定,但可以通过列表操作函数实现动态生成依赖集合,以下是两种可行方案:

方案一:使用 concat 结合条件判断

通过 concat 拼接固定依赖和条件性依赖,当条件不满足时传入空列表,最终得到对应实例的依赖集合:

depends_on = concat(
  [azurerm_lb.load_balancer],
  # 若 backend_address_pool 属性存在/为真,则添加后端地址池依赖,否则传入空列表
  each.value.backend_address_pool ? [azurerm_lb_backend_address_pool.pool_address] : []
)

方案二:使用 flatten 处理嵌套列表

利用 flatten 将嵌套列表展开为一维,同样通过条件判断决定是否包含额外依赖:

depends_on = flatten([
  azurerm_lb.load_balancer,
  each.value.backend_address_pool ? azurerm_lb_backend_address_pool.pool_address : []
])

注意事项

如果 azurerm_lb_backend_address_pool 本身也是通过 for_each 创建的多实例资源,需要对应引用匹配的实例,比如:

azurerm_lb_backend_address_pool.pool_address[each.key]

确保依赖的是与当前实例对应的后端地址池资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 08:33:12