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

如何在Terraform Map变量中为单个Key分配多个值

解决Terraform中Map值类型混合的问题

你当前的original_map变量类型是map(string),仅支持存储字符串类型的值,无法直接给key1分配列表值。要实现需求,需要先调整变量的类型约束,再定义目标结构。

1. 修改变量类型约束

将变量类型改为支持字符串或字符串列表的混合类型,推荐使用map(union(string, list(string)))(比map(any)更严谨,明确限定允许的值类型):

variable "original_map" {
  type = map(union(string, list(string)))
}

2. 定义目标Map结构

现在可以直接按照你想要的格式赋值:

original_map = {
  key1 = ["value1", "value2"]
  key2 = "value2"
}

3. 基于原Map转换(可选)

如果需要在已有map(string)类型的原Map基础上修改key1的值为列表,可以用merge函数生成新的Map:

locals {
  transformed_map = merge(
    var.original_map,
    tomap({
      key1 = ["value1", "value2"]
    })
  )
}

该方式生成的transformed_map会自动推断为map(union(string, list(string)))类型,后续使用时需注意类型兼容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 03:52:08