gpt4 book ai didi

terraform - 此默认值与变量的类型约束不兼容 : element "tags": string required

转载 作者:行者123 更新时间:2023-12-03 08:18:27 26 4
gpt4 key购买 nike

我正在尝试添加类型,但它没有选择它,如果我将类型创建为对象,我很困惑如何提供 boot_disk 和“network_interface”类型。错误:│此默认值与变量的类型约束不兼容:元素“tags”:需要字符串。

variable worker {
type = map(string)
default = {
worker_count = 2
name = "k3s-master"
machine_type = "n1-standard-1"
tags = ["k3s", "k3s-master"]
zone = "us-central1-a"


boot_disk = {
initialize_params = {
image = "debian-9-stretch-v20200805"
}
}

network_interface = {
network = "default"
}
}
}

最佳答案

@MarkoE 在评论中的回答很接近,但并不完全正确。 Terraform 的 map 类型是一个“集合”,并且根据Terraform's documentation ,“集合中的所有元素必须始终属于同一类型。”

由于您的变量对于不同的字段具有不同的类型(例如,worker_count 是一个 number,但 tags 是一个 list(string )),map(any) 将不起作用。

由于您似乎想要严格输入变量类型,因此您可能需要的是 object 类型。在你的例子中,它看起来像这样:

variable "worker" {
type = object({
worker_count = number
name = string
machine_type = string
tags = list(string)
zone = string
boot_disk = object({
initialize_params = object({
image = string
})
})
network_interface = object({
network = string
})
})

default = ...
}

关于terraform - 此默认值与变量的类型约束不兼容 : element "tags": string required,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68618189/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com