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

为何我的Terraform简单for循环报错?求排查提示

Terraform For表达式过滤错误排查

错误原因

你在for表达式的if条件里错误使用了Terraform的插值语法${}。在HCL的纯表达式上下文(比如if判断语句)中,不需要用${}包裹变量引用,直接通过点语法访问属性即可。

修正后的代码

locals {
  cmpgdb_swid = "cmpgdb"
  cmpgdb_path = "pg"
  cmpgdb_prefix = "cmpgdb-pg-"
  cmpgdb_dbadmin = "-pguser-dbadmin"
  cmpgdb_dbowner = "-pguser-dbowner"

  filtered_apps = { 
    for app in local.yaml_data : "${app.swid}.${app.instance}" => app 
    if app.swid == local.cmpgdb_swid
  }
}

补充说明

  • 插值语法${}仅用于在字符串字面量中嵌入表达式,比如你在map的键"${app.swid}.${app.instance}"里的用法是正确的,因为这是字符串拼接场景。
  • 在if条件、变量赋值这类纯表达式场景下,直接使用变量/属性的引用形式即可,Terraform会自动解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 21:04:53