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

如何在Terraform中使用flatten生成目标映射?

解决方案

你需要把flatten生成的对象列表合并为单一映射,结合merge函数与扩展运算符...就能实现目标结构,同时还可以剔除不需要的environments字段,代码如下:

application_envs = merge([
  for app_key, app in var.applications : {
    for env in app.environments : "${app_key}-${env}" => omit(app, "environments")
  }
]...)

代码说明:

  1. 内层for循环遍历每个应用的环境列表,生成以应用名-环境名为键、剔除environments后的应用配置为值的小型映射。
  2. 外层for循环会得到一个包含多个小型映射的列表,通过...将列表展开为merge的参数,merge会把所有小型映射合并成一个完整的目标映射结构。

如果需要保留environments字段,只需把omit(app, "environments")替换为app即可。


内容的提问来源于stack exchange,提问作者Vitor Falcão

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 18:55:28