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

Terraform中each.value无法使用求助:for_each循环配置报错

问题分析与解决

错误原因

你遇到的错误本质是:Terraform的嵌套块(比如这里的log块)不支持直接使用for_each。for_each仅能用于资源、模块、provisioner等顶层元素,直接在嵌套块上声明for_each会导致each.value/each.key处于无效上下文,触发报错。

正确实现方式

改用dynamic块来循环生成多个log配置,这是Terraform处理嵌套块批量生成的标准写法:

dynamic "log" {
  for_each = toset(var.log_categories)
  content {
    category = log.value
    retention_policy {
      days    = 30
      enabled = false
    }
  }
}

关键说明

  • dynamic "log"表示要动态生成名为log的嵌套块
  • 循环变量不再用each,而是用你定义的块名(这里是log),通过log.value获取当前循环的元素值
  • 把原本的log块内容放到content块内部,保持配置逻辑不变

额外检查点

  • 确认你的Terraform版本支持dynamic块(Terraform 0.12及以上版本都支持)
  • 确保var.log_categories里的所有类别都是目标资源(看起来是Azure Firewall监控日志)支持的合法类别,避免后续出现类别无效的错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 11:24:10