Terraform – 从OS环境变量获取variable [Variable获取的优先权]

variable "test1" {
default = "s"
}

output "result_test1" {
value = var.test1
}

系统能够从TF_VAR_开头的环境变量获取variable, 例子如下

Variable 优先权

有以下4种方法,越后面就有最高权限,覆盖前面所设的值,比如:命令行参数能够覆盖前面3种的变数的设定方式

  1. 默认值
    在 Terraform 配置文件中,通过 variable 块定义的 default 值(如果未提供其它值,则采用默认值)
  2. 环境变量
    使用前缀 TF_VAR_ 设置的环境变量值,例如:
export TF_VAR_image_id="ami-abc123"

3. 变量文件
Terraform 会自动加载以下文件,并依次覆盖前面的设置:

* 所有 *.auto.tfvars 或 *.auto.tfvars.json 文件(按文件名字母顺序加载)
* terraform.tfvars 文件(tf 格式)
* terraform.tfvars.json 文件(JSON 格式)

4. 命令行参数
通过命令行指定的变量值(使用 -var-var-file 选项),其优先级最高,会覆盖前面的所有设置,例如:

Loading

Facebook评论