我正试图将用HCL编写的地形变量转换为包含该变量的动态生成的tf.json
文件,但我遇到了错误。
我要转换的HCL版本:
variable "accounts" {
type = map(any)
default = {
acct1 = ["000000000001"]
acct2 = ["000000000002"]
}
}
我试过以下格式:
{
"variable": {
"accounts": {
"type": "map(any)",
"default": [
{ "acct1": "000000000001" },
{ "acct2": "000000000002"}
]
}
}
}
和
{
"variable": {
"accounts": {
"type": "map(any)",
"default": [
{
"acct1": ["000000000001"],
"acct2": ["000000000002"]
}
]
}
}
}
我得到以下错误:
│ Error: Invalid default value for variable
│
│ on accounts.tf.json line 6, in variable.accounts:
│ 6: "default": [
This default value is not compatible with the variable's type constraint: map of any single type required.
是否有工具可以将HCL转换为有效的.tf.json
配置?或者我在这里的格式上遗漏了什么?
您为变量指定的类型是map(any)
,因此该变量的默认值也必须是map(any)
,而不能是list(map(list(string)))
。
{
"variable": {
"accounts": {
"type": "map(any)",
"default": {
"acct1": ["000000000001"],
"acct2": ["000000000002"]
}
}
}
}
这将分配一个默认值类型object(list(string))
匹配相同的object(list(string))
类型结构在你的HCL2,也将是指定的map(any)
的子集。
您的默认值是一个映射列表,但它应该只有map:
"default": {
"acct1": "000000000001",
"acct2": "000000000002"
}