2 terraform terraform-provider-gcp
我正在尝试添加类型,但它没有选择它,boot_disk如果我将类型创建为对象,我很困惑如何给出“network_interface”类型。\n错误:\xe2\x94\x82 This default value is not compatible with the variable's type constraint: element "tags": string required.
variable worker {\n type = map(string)\n default = {\n worker_count = 2\n name = "k3s-master"\n machine_type = "n1-standard-1"\n tags = ["k3s", "k3s-master"]\n zone = "us-central1-a"\n\n\n boot_disk = {\n initialize_params = {\n image = "debian-9-stretch-v20200805"\n }\n }\n\n network_interface = {\n network = "default"\n }\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n
@MarkoE 在评论中的答案很接近,但不太正确。Terraform 的map类型是一个“集合”,并且根据Terraform 的文档,“集合的所有元素必须始终具有相同的类型”。
由于您的变量对于不同的字段具有不同的类型(例如worker_countis a number,但是tagsis a 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 = ...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9044 次 |
| 最近记录: |