1 回答

TA貢獻1874條經(jīng)驗 獲得超12個贊
您共享的錯誤是由于type Resource. resourceTerraform 中的塊(和data塊)需要兩個標簽,指示資源類型和名稱。要將您暗示的模式與這些結構類型相匹配,您需要定義標記為的字段label:
type Resource struct {
Type string `hcl:"type,label"`
Name string `hcl:"name,label"`
Options hcl.Body `hcl:",remain"`
}
type Data struct {
Type string `hcl:"type,label"`
Name string `hcl:"name,label"`
Options hcl.Body `hcl:",remain"`
}
雖然這應該適用于您在此處顯示的有限輸入,但我要提醒您,您正在使用更高級別的gohcl
API,它只能解碼 HCL 的一個子集,該子集很好地映射到 Go 的結構類型。hcl.Body
Terraform 本身直接使用了和的底層 API hcl.Expression
,這使得 Terraform 語言可以包含一些gohcl
API 無法直接表示的 HCL 特性。
根據(jù)您的目標,您可能會發(fā)現(xiàn)使用官方庫更好terraform-config-inspect
,它可以在比 HCL API 本身更高的抽象級別上解析、解碼和描述 Terraform 語言的子集。它還支持為 Terraform 版本編寫的模塊,一直追溯到 Terraform v0.11,并且是支持Terraform Registry完成的模塊分析的實現(xiàn)。
- 1 回答
- 0 關注
- 107 瀏覽
添加回答
舉報