Terraform 地形-创建对象的地图
这对我的大脑有点影响。因此,我想创建一个对象地图,如下所示:Terraform 地形-创建对象的地图,terraform,Terraform,这对我的大脑有点影响。因此,我想创建一个对象地图,如下所示: { "nic_1" = { "interface_id" = "blah" "ip_configuration_name" = "blah" }, "nic_2" = { "interface_id" = "blah" "i
{
"nic_1" = {
"interface_id" = "blah"
"ip_configuration_name" = "blah"
},
"nic_2" = {
"interface_id" = "blah"
"ip_configuration_name" = "blah"
},
}
此数据的来源来自以下列表:
ni-resource = [
{
"id" = "blah"
"ip_configuration" = [
{
"name" = "blah"
},
]
"name" = "nic_1"
},
{
"id" = "blah"
"ip_configuration" = [
{
"name" = "blah"
},
]
"name" = "nic_2"
},
]
因此,换句话说,ni资源->id
需要映射到interface\u id
,ni资源->ip\u配置->name
需要映射到ip\u配置\u name
我正在尝试创建一个本地服务器,如下所示,但该服务器不起作用:
locals {
ni_list = { for ni in ni-resource :
ni["name"] => {
interface_id = ni["id"]
ip_configuration = ni["ip_configuration"][0]["name"]
}
}
}
我得到的错误如下:
Error: Invalid object key
The key expression produced an invalid result: string required.
以下是完整的ni资源输出:
ni-resource = [
{
"applied_dns_servers" = []
"dns_servers" = []
"enable_accelerated_networking" = false
"enable_ip_forwarding" = false
"id" = "blah"
"internal_dns_name_label" = ""
"internal_domain_name_suffix" = "blah"
"ip_configuration" = [
{
"name" = "blah"
"primary" = true
"private_ip_address" = "dummy"
"private_ip_address_allocation" = "Dynamic"
"private_ip_address_version" = "IPv4"
"public_ip_address_id" = ""
"subnet_id" = "dummy"
},
]
"location" = "dummy"
"mac_address" = ""
"name" = "nic_1l"
"private_ip_address" = "dummy"
"private_ip_addresses" = [
"dummy",
]
"resource_group_name" = "dummy"
"virtual_machine_id" = ""
},
]
你能澄清这个问题吗?为什么“它不工作?”有错误消息吗?@Marcin我已经在问题中添加了错误消息。我运行了你的示例,它对我有效。没有错误,输出是您想要的。但是我在测试中使用了
ni-resource
作为变量var.ni-resource
。在您的案例中,什么是ni资源
?您确定您提供的ni资源
示例正确地表示了您的实际数据吗?顺便说一句,我使用terraform 0.13,我对这段代码没有任何问题。好吧,我知道哪里出了问题,我在其他地方配置了另一个本地配置,但我没有更新。太多的TF也可能是一件坏事@马辛:谢谢你的帮助。