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

如何在Terraform中混合静态与动态键创建Map?

Terraform 混合静态键与动态生成键的Map实现方案

核心解决思路

Terraform不支持在单个Map字面量里同时写静态键和for表达式,正确的做法是用merge()函数,把静态键组成的Map和for表达式生成的动态Map合并到一起。

可行代码示例

variable "n" {
  type        = number
  description = "动态生成key-n的最大序号"
  default     = 4
}

locals {
  MyMap = merge(
    # 静态键部分
    {
      "abc" = {}
      "pqr" = {}
    },
    # 动态生成key-n部分
    { for i in range(1, var.n + 1) : "key-${i}" => {} }
  )
}

关键细节说明

  • merge()函数负责将多个Map合并为一个,若存在重复键,后面的Map会覆盖前面的(这里静态键和动态键无重复,直接合并即可)
  • Terraform的range是左闭右开区间,比如要生成1到4的序号,得写range(1,5),所以用var.n +1能确保包含第n个key
  • 静态键和动态生成部分各自作为独立Map传入merge(),就能得到静态+动态混合的目标结构

结果验证

可以加个输出块查看最终生成的Map:

output "my_map_result" {
  value = local.MyMap
}

执行terraform apply后,就能看到包含所有静态键和动态key-n的完整Map结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 05:32:37