Terraform HCL-将列表转换为对象地图?

Terraform HCL-将列表转换为对象地图?,terraform,hcl,Terraform,Hcl,我有一个字符串列表,我需要将其转换为映射,这样当我稍后对其执行jsonencode操作时,它就不会创建数组。这是因为在json模式中,属性:{…}不是属性列表,而是一个映射 因此,我的列表中的每个属性都应该显示为键值映射。其中键是属性名,值是另一个映射或对象{“type”=“string”} 我的第一次尝试以贴图对象列表而不是属性贴图结束 有没有更好的方法来实现这一点 我的最终目标是能够在API网关模型的json模式中使用JSONECODE- "properties": {

我有一个字符串列表,我需要将其转换为映射,这样当我稍后对其执行
jsonencode
操作时,它就不会创建数组。这是因为在json模式中,
属性:{…}
不是属性列表,而是一个映射

因此,我的列表中的每个属性都应该显示为键值映射。其中键是属性名,值是另一个映射或对象{“type”=“string”}

我的第一次尝试以贴图对象列表而不是属性贴图结束

有没有更好的方法来实现这一点

我的最终目标是能够在API网关模型的json模式中使用JSONECODE-

"properties": {
  "prop1": {
    "type": "string"
  },
  "prop2": {
    "type": "string"
  }
}

附加属性的分配指定为:

[
  for prop in local.prop-list:
    { prop = { "type" = "string" }}
]
我们可以删除lambda和变量,以查看构造函数的结果类型:

[{{}}]
这是列表中的嵌套映射

由于您需要具有
{prop{type=string}
结构的嵌套映射,因此我们需要相应地指定构造函数:

additional-properties = { # outside map with "prop" key and map value
  for prop in local.prop-list:
    prop => { "type" = "string" } # nested map with "type" key and "string" value
}

还要注意从
=
=>
的更改,以获得正确的lambda迭代器映射键值对分配语法。

谢谢,我缺少的是
=>
lambda语法。
additional-properties = { # outside map with "prop" key and map value
  for prop in local.prop-list:
    prop => { "type" = "string" } # nested map with "type" key and "string" value
}