Terraform 地形复杂类型值不为';行不通
这段代码由于以下错误而失败,我尝试将对象语法更改为映射语法,但也失败了Terraform 地形复杂类型值不为';行不通,terraform,terraform0.12+,Terraform,Terraform0.12+,这段代码由于以下错误而失败,我尝试将对象语法更改为映射语法,但也失败了 variable "evstream_cluster" { type = map(object({ name = string kafka_version = string broker = map(object({ node_count = number node_instance_type = string ebs_volume_size_gb = num
variable "evstream_cluster" {
type = map(object({
name = string
kafka_version = string
broker = map(object({
node_count = number
node_instance_type = string
ebs_volume_size_gb = number
}))
}))
default = {
name = "evstream",
kafka_version = "2.2.1",
broker = {
node_count = 3,
node_instance_type = "m5.large",
ebs_volume_size_gb = 500
}
}
}
感谢您提供有用的值,这将有助于理解地形类型系统。这是您所追求的对象的地图还是单个对象?如果是后者,这将起作用:
变量“evstream_cluster”{
类型=对象({
名称=字符串
卡夫卡版本=字符串
代理=对象({
节点计数=编号
节点\实例\类型=字符串
ebs\u体积\u大小\u gb=数量
})
})
默认值={
name=“evstream”,
卡夫卡大学版本=“2.2.1”,
经纪人={
节点计数=3,
节点\实例\类型=“m5.large”,
ebs\u体积大小\u gb=500
}
}
}
这是你要找的对象的地图还是一个对象?如果是后者,这将起作用:
变量“evstream_cluster”{
类型=对象({
名称=字符串
卡夫卡版本=字符串
代理=对象({
节点计数=编号
节点\实例\类型=字符串
ebs\u体积\u大小\u gb=数量
})
})
默认值={
name=“evstream”,
卡夫卡大学版本=“2.2.1”,
经纪人={
节点计数=3,
节点\实例\类型=“m5.large”,
ebs\u体积大小\u gb=500
}
}
}
> terraform -version
Terraform v0.12.25
> terraform validate
Error: Invalid default value for variable
on variables.tf line 39, in variable "evstream_cluster":
39: default = {
40: name = "evstream"
41: kafka_version = "2.2.1"
42: broker = {
43: node_count = 3
44: node_instance_type = "m5.large"
45: ebs_volume_size_gb = 500
46: }
47: }
This default value is not compatible with the variable's type constraint:
element "name": object required.