将Terraform HCL的map(any)类型变量转换为合法tf.json格式
问题原因
你的JSON配置存在类型不匹配错误:原HCL中accounts变量的类型声明为map(any),对应的default值是键值对构成的映射对象,但你两次尝试的配置里都把default值用方括号[]包裹转成了数组类型,不符合类型约束才会报错。
正确的tf.json写法
{ "variable": { "accounts": { "type": "map(any)", "default": { "acct1": ["000000000001"], "acct2": ["000000000002"] } } } }
HCL转tf.json工具
Terraform官方自带转换能力,你可以在包含合法HCL配置的目录下先执行terraform init完成初始化,再执行terraform show -json就能直接导出符合语法规范的JSON格式配置,无需手动调整结构。
内容的提问来源于stack exchange,提问作者dobbs
相关产品推荐
相关产品推荐

