【问题标题】:Convert Json to Terraform map(objects())将 Json 转换为 Terraform 地图(objects())
【发布时间】:2021-11-01 08:13:41
【问题描述】:

我有一个如下所示的 json 文件

{
   "Domain": {
    "Services": [{
        "service1": [{
            "custid" : "1104",
            "fname" : "ton",
            "lname" : "hatf",
        }],
        "service2": [{
            "custid" : "1105",
            "fname" : "ran",
            "lname" : "ttt",
        }],
        "service3": [{
            "custid" : "1106",
            "fname" : "rin",
            "lname" : "wqg",
        }]
    }]
}
 }

我可以使用 Terraform jsondecode() 函数将 json 转换为如下所示的对象映射

variable "Services" {
  type = map(object({
   custid     = string
   fname    = string
   lname = string
   }))
  default = {
   "service1" = {
     custid = "1104",
     fname  = "ton",
     lname  = "hatf",
   },
   "service2" = {
     custid = "1105",
     fname  = "ran",
     lname  = "ttt",
  },
   "service3" = {
     custid = "1106",
     fname  = "rin",
     lname  = "wgg",
  }
}
 }

我尝试使用下面的代码阅读它

  locals {
     json_data = jsondecode(file("${path.module}/Domain.json"))
    }

但不幸的是,我不知道如何使用它来构建上述地图(对象)

【问题讨论】:

  • 您可以使用一个类将您的 json 映射到相应的类中
  • 不确定您的问题是什么?您是否尝试过使用jsondecode?你得到了什么?有什么错误吗?
  • 您可以查看此链接:stackoverflow.com/questions/55533093/…
  • @PawanTiwari 我如何将它与 Terraform 一起使用
  • @Marcin 用问题更新了问题

标签: terraform


【解决方案1】:

您的 Domain.json无效的 json。有效的 json 是:

{
   "Domain": {
    "Services": [{
        "service1": [{
            "custid" : "1104",
            "fname" : "ton",
            "lname" : "hatf"
        }],
        "service2": [{
            "custid" : "1105",
            "fname" : "ran",
            "lname" : "ttt"
        }],
        "service3": [{
            "custid" : "1106",
            "fname" : "rin",
            "lname" : "wqg"
        }]
    }]
}
}

那么,您的local 可以是:

locals {
 services = jsondecode(file("${path.module}/Domain.json"))["Domain"]["Services"]
}

【讨论】:

    猜你喜欢
    • 2010-10-01
    • 2017-02-14
    • 2019-06-09
    • 2015-02-13
    • 1970-01-01
    • 2020-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多