首页 > 解决方案 > Terraform 从环境中读取变量

问题描述

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

variable "GOOGLE_CLOUD_REGION" {
  type = string
}

当我运行terraform plan时,我被要求填写这个变量,即使这个变量是在我的环境中设置的。

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

标签: continuous-integrationterraformcontinuous-deployment

解决方案


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

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

export TF_VAR_GOOGLE_CLOUD_REGION="$GOOGLE_CLOUD_REGION"
terraform apply ...

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

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

这在以自动化方式运行 Terraform 或使用相同变量连续运行一系列 Terraform 命令时很有用。例如,在bashUnix 系统上的提示符下:

$ export TF_VAR_image_id=ami-abc123 $ terraform plan ...


推荐阅读