Terraform变量默认type是否为string?两类变量声明是否等价?
问题:以下两段Terraform变量声明是否等价?
variable "a" { nullable = false type = string } variable "b" { nullable = false }
不等价,核心区别在于类型约束:
- 变量
a明确限定类型为string,同时禁用空值。它只能接收有效的字符串值,既不能是null,也不能是数字、布尔值、列表等其他类型,否则Terraform会直接报错。 - 变量
b未指定类型约束,Terraform会默认使用any类型(任意类型),仅限制不能传入null。这意味着b可以接收字符串、数字、对象、列表等任何非null的类型值,都能通过校验。
举个实际场景的例子:
- 给
a传入123(数字类型),Terraform会抛出类型不匹配的错误; - 给
b传入123,则完全合法,不会触发任何校验问题。
内容的提问来源于stack exchange,提问作者VanillaDonuts
相关产品推荐
相关产品推荐

