我想知道是否有人可以帮我处理一些地形数据 :) 我正在查询一个 API,一旦我通过 jsonencode 传递它,就会得到这样的响应:
api_response = [
{
description = "vnet-01"
site = {
id = 24
name = "Azure - northeu"
}
id = 2291
prefix = "10.10.160.0/24"
},
{
description = "vnet-01"
site = {
id = 24
name = "Azure - northeu"
}
id = 2311
prefix = "10.10.161.0/24"
},
{
description = "vnet-02"
site = {
id = 24
name = "Azure - westeu"
}
id = 2310
prefix = "10.20.168.0/21"
},
]
所以基本上,我得到一个列表(地图(对象))。
我在这里真正想做的是获取 API 响应并将其解析为更易于处理的本地数据,因为我将使用这些数据来创建资源并进行进一步的 API 调用。我基本上想创建类似下面这种地图(对象)格式的东西:
prefix_info = {
"vnet-01" = {
address_space = ["10.180.160.0/24","10.180.161.0/24"]
site_name = "Azure - northeu"
}
"vnet-02" = {
address_space = ["10.180.168.0/21"]
site_name = "Azure - westeu"
}
}
拥有单个对象映射会更好,但如果有必要,可以将其拆分为多个本地对象(例如,我不知道,但在前缀列表中添加一个新前缀可能是一个挑战,同时还要保持网站一致?)
我已经阅读了有关 for_each / dynamics 等的各种内容,并且之前在创建资源时也使用过它们,但是在尝试分配本地人时(至少据我所知),这些结构对我来说并不真正可用。
locals {
prefix_info = {for response in local.api_response: response["description"] => { "address_space": [response["prefix"]], "site_name": response["site"]["name"] }}
}