Terraform 从环境中读取变量

Voj*_*ěch 9 continuous-integration continuous-deployment terraform

我编写了一个带有变量定义的 terraform 配置,例如:

variable "GOOGLE_CLOUD_REGION" {
  type = string
}
Run Code Online (Sandbox Code Playgroud)

当我运行时,terraform plan系统会要求我填写此变量,即使此变量是在我的环境中设置的。

有没有办法告诉 terraform 使用当前的环境变量?或者我是否必须导出它们并以某种方式手动将它们一一传递?

Ala*_*Dea 9

您可以定义环境变量TF_VAR_GOOGLE_CLOUD_REGION来设置该变量。

如果您使用 bash,它可能如下所示:

export TF_VAR_GOOGLE_CLOUD_REGION="$GOOGLE_CLOUD_REGION"
terraform apply ...
Run Code Online (Sandbox Code Playgroud)

从配置语言下的环境变量:输入变量。

作为定义变量的其他方法的后备,Terraform 在其自身进程的环境中搜索以TF_VAR_声明变量名称命名的环境变量。

当自动化运行 Terraform 时,或者使用相同变量连续运行一系列 Terraform 命令时,这非常有用。例如,bash在 Unix 系统上出现提示时:

$ 导出 TF_VAR_image_id=ami-abc123 $ 地形计划 ...