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

如何在Terraform中将API返回的列表嵌套映射转换为指定格式的映射对象?

Terraform 数据转换解决方案

直接通过local变量结合Terraform内置函数,一步完成从list(map(object))到目标map(object)的转换:

locals {
  prefix_info = {
    for desc, items in groupby(var.api_response, "description") : desc => {
      address_space = [for item in items : item.prefix]
      site_name     = items[0].site.name
    }
  }
}

代码逻辑说明

  1. 分组处理:groupby(var.api_response, "description") 将原始API响应列表按description字段分组,生成一个以description值为键、对应同组元素列表为值的临时映射。
  2. 构造目标结构:外层for循环遍历分组后的映射:
    • 以每个分组的description值作为最终映射的键;
    • 内层for循环提取分组内所有元素的prefix字段,组合成address_space列表;
    • 取分组内第一个元素的site.name作为site_name(基于同一description对应相同site的前提,若需兼容不同site场景,可根据需求添加校验逻辑)。

代入你提供的API响应示例,最终生成的local.prefix_info结构将完全匹配目标格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 05:47:38