爲了更好地理解terraform,我希望能夠將HCL轉換爲等效的JSON。我得到了HCL解析器(https://github.com/hashicorp/hcl)來構建和運行測試,但我沒有看到任何命令採取HCL文件並輸出JSON。如何將HashiCorp配置語言轉換爲JSON?
有一個HCL的python實現,它包含一個將HCL轉換爲JSON的實用程序,但它有一些相當奇怪的/意外的行爲,我想確認該行爲來自HCL語言,並且不是特定的到python實現。例如
> cat foo.tf
service {
key = "aaa"
}
service {
key = 0x10
foo = "bar"
}
> hcltool foo.tf
{
"service": [
{
"foo": "bar",
"key": "aaa"
},
{
"key": 16
}
]
}
你確定你的tf是正確的嗎?我對hcl的語言規範不夠熟悉,但我熟悉的aws提供程序在''like'類型「標識符」之前使用了兩個單詞{',例如'variable「ami」{' – RaGe
我只是從HCL解組到Go結構,然後編組到Go結構到JSON。 –
HCL沒有定義規範,並且沒有從HCL到JSON的直接轉換。更復雜的是,Terraform要求HCL的AST結構表示不同的類型,所以有一些嵌套的結構根本無法用JSON來描述。由於這些含糊不清,沒有一種工具可以將任意HCL轉換爲有效的JSON。見https://github.com/hashicorp/terraform/issues/9354。 – JimB