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也可能是一件坏事@马辛:谢谢你的帮助。