gpt4 book ai didi

Terraform 0.12 迁移 - 具有默认对象的变量

转载 作者:行者123 更新时间:2023-12-05 03:48:23 26 4
gpt4 key购买 nike

我正在尝试将我的 TF 0.11 代码升级到 0.12,但我遇到了一个可变问题。

在 TF 0.11 中,这个 block 在 variables.tf 文件中按预期工作

variable "postgres_dbs" {
type = "map"

default = {
postgres1 = {
name_postfix = "postgres",
enable = true,
sku = "MO_Gen5_16",
capacity = "16"
}
postgres2 = {
name_postfix = "postgres-2",
enable = false,
sku = "MO_Gen5_16",
capacity = "16"
}
postgres3 = {
name_postfix = "postgres-3",
enable = false,
sku = "MO_Gen5_16",
capacity = "16"
}
postgres4 = {
name_postfix = "postgres-4",
enable = false,
sku = "MO_Gen5_16",
capacity = "16"
}
postgres5 = {
name_postfix = "postgres-5",
enable = false,
sku = "MO_Gen5_16",
capacity = "16"
}
postgres6 = {
name_postfix = "postgres-6",
enable = false,
sku = "MO_Gen5_16",
capacity = "16"
}
postgres7 = {
name_postfix = "postgres-7",
enable = false,
sku = "MO_Gen5_16",
capacity = "16"
}
postgres8 = {
name_postfix = "postgres-8",
enable = false,
sku = "MO_Gen5_16",
capacity = "16"
}
}
}

运行 terraform 012upgrade 命令后(完成且没有错误)TF改 block 使用

variable "postgres_dbs" {
type = map(string)

但是运行 terraform validate 时的错误是:

This default value is not compatible with the variable's type constraint:
element "postgres6": string required.

有什么建议吗?谢谢!

最佳答案

您可以更新和微调您的类型规范,如下所示:

type = map(object({
name_postfix = string
enable = bool
sku = string
capacity = string
}))

理想情况下,您可以将 capacity 对象参数指定为 number,但您正在将该参数的输入转换为 string,所以这会导致不兼容,除非您将输入指定为其自然 number 类型。

关于Terraform 0.12 迁移 - 具有默认对象的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64430064/

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