我尝试使用vmware/弗拉提供程序部署虚拟机,在尝试定义输入时出现此错误:
错误:无法将输入“disks”value“{“label”:“/appmnt”,“mountpoint”:“/app”,“size”:“20”}“转换为类型”arrays“.&json.UnmarshalTypeError{Value:“object”,Type:(*reflect.rtype)(0x 103 c715 e0),Offset:1,Struct:“",Field:““}
inputs = {
image = "Ubuntu"
folderPath = "folder/Path"
folderName = "terraform"
name = "terraDeploy"
disks = jsonencode({ "mountpoint": "/app", "label": "/appmnt", "size": "20" })
}
字符串
我的“terraform apply”磁盘输出如下所示:
+ "disks" = jsonencode(
{
+ label = "/appmnt"
+ mountpoint = "/app"
+ size = "20"
}
)
型
这是使用Postman/curl请求的方法:
"cpuCount": "4",
"disks": [
{
"size": 20,
"mountpoint": "/app",
"label": "appmnt"
}
],
型
1条答案
按热度按时间enxuqcxy1#
在您展示的工作示例中,您传递了一个包含JSON对象的JSON数组,但在Terraform配置中,您只传递了一个JSON对象。
您可以通过向
jsonencode
传递列表或元组值来传递JSON数组。例如:字符串
Terraform将其编码为包含JSON对象的JSON数组,因此应该匹配您的工作请求:
型
请注意,这个错误消息似乎来自
vmware/vra
提供程序,而不是来自Terraform本身,所以这是一个关于disks
参数的问题,而不是关于jsonencode
的问题。这并不重要,但我想在你有更多问题的情况下注明一下,这样你就可以在问题标题中提到提供程序。