Terraform如何在variables.tf中声明必填/可选输入变量?
Terraform变量必填/可选标记规则
Terraform没有你设想的presence专用字段来标记变量必填/可选属性,其内置判定逻辑如下:
- 必填变量:变量定义块中不设置
default参数即可。运行时如果用户未传入该变量的值,Terraform会直接抛出错误终止执行,要求用户补充该变量值。你示例中的project变量就属于必填变量。 - 可选变量:变量定义块中设置
default参数即可。运行时如果用户未传入该变量的值,Terraform会自动使用预设的默认值。你示例中的environment变量就属于可选变量。
如果需要显式标注让代码可读性更高,可以直接把必填/可选标识写入description字段,示例如下:
variable "project" { description = "[必填] 项目名称,例如 paylocity、paychex、ultipro" type = string } variable "environment" { description = "[可选] 项目部署环境,例如 production、sandbox、staging,默认值为 sandbox" type = string default = "sandbox" }
注意:Terraform 0.14及后续版本提供的
optional修饰符仅用于标注object类型变量的内部属性是否可选,不适用于顶级输入变量的必填/可选判定。
内容的提问来源于stack exchange,提问作者Ryan Lyu
相关产品推荐
相关产品推荐

