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

Terraform中如何使用Map值创建自定义字符串?

解决Terraform嵌套Map列表遍历中的字符串构建引号冲突

以下几种方法可以解决你遇到的双引号冲突问题:

  • 转义内部双引号
    在访问Map键的双引号前添加反斜杠转义,明确这是字符串内部的引号:

    locals { 
      example = [
        for var2 in var.some_list : {
          myString = "${var2.map[\"key1\"]}_${var2.map[\"key2\"]}"
        }
      ]
    }
    
  • 用单引号包裹Map键
    Terraform支持用单引号引用Map的键,这样不会和外层字符串的双引号产生冲突:

    locals { 
      example = [
        for var2 in var.some_list : {
          myString = "${var2.map['key1']}_${var2.map['key2']}"
        }
      ]
    }
    
  • 使用format函数构建字符串
    借助Terraform内置的format函数,通过占位符拼接字符串,彻底避开引号嵌套问题:

    locals { 
      example = [
        for var2 in var.some_list : {
          myString = format("%s_%s", var2.map["key1"], var2.map["key2"])
        }
      ]
    }
    
  • 使用字符串拼接运算符+
    直接用+运算符拼接多个字符串片段,不需要插值语法,自然避免引号冲突:

    locals { 
      example = [
        for var2 in var.some_list : {
          myString = var2.map["key1"] + "_" + var2.map["key2"]
        }
      ]
    }
    

内容的提问来源于stack exchange,提问作者N. J

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 12:55:37