如何在terraform locals、json语法中定义地图地图

如何在terraform locals、json语法中定义地图地图,terraform,Terraform,Terraform具有json配置语法 在常规terraform语法中,我可以定义一个本地地图 locals = { my_map_of_maps = { map1 = { key = "value" } } } 但是,在json语法中,以下等效 { "locals": { "my_local":"value", "my_map_of_maps":{ "map1": { "key":"value"

Terraform具有json配置语法

在常规terraform语法中,我可以定义一个本地地图

locals = {
  my_map_of_maps = {
    map1 = {
      key = "value"
    }
  }
}
但是,在json语法中,以下等效

{ 
  "locals": {
    "my_local":"value",
    "my_map_of_maps":{
      "map1": {
        "key":"value"
      }
    }
  }
}
当我运行
terraform refresh
时失败,我得到的
locals块位于-不应该有“我的地图”标签

但是,不包含其他贴图的贴图是可以的

{ 
  "locals": {
    "my_local":"value",
    "my_map":{
      "key":"value"}
  }
}
通过
地形刷新

不重要 有趣的是,在json语法中,我不能定义本地映射,除非我首先定义一个不是映射的本地映射,因此使用了
“my_local”:“value”
。如果没有它,
terraform刷新
将失败,
locals块位于-不应该有标签“我的地图”

版本
Terraform v0.11.13

这是Terraform v0.11中的一个已知错误,看起来您已经找到了在其中包含一个附加非映射值的解决方法,以帮助解析器理解您的意思。Terraform v0.12的新JSON语法解码器不再有这个问题。谢谢。你知道我提出的主要问题是否也是一个已知的bug吗?你知道该问题的解决方法吗?我在这里只看到一个问题:一个内部只有一个映射表达式的
局部变量
块被误解为一个带标签的
局部变量
块。你能详细说明一下你所说的其他bug吗?我问题的主要部分是如何用TerraformJSON语法创建地图地图。试过了,不起作用。答案是要么使用Terraform 0.12,要么在
locals
对象中添加额外属性,以解决Terraform 0.11中的已知错误。