You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 11:20:32