为 terraform 导出环境变量不起作用?

export a environment variable for terraform does not work?

我正在尝试为 terraform 设置环境变量

使用export TF_VAR_instanceType="t2.nano"

我的 tf 文件看起来像这样:-

resource "aws_instance" "myFirstEc2Instance" {

  ami           = "ami-0ca285d4c2cda3300"
  instance_type = var.instanceType
}

请注意还有 terraform.tfvars 和 variables.tf 文件,我想看看导出环境变量在 Mac 中是如何工作的。 它正在使用当前值 terraform.tfvars 文件。

这是因为 terraform 使用 TF_VAR 作为后备。因此,如果它在 terraform.tfvars 中找到变量,它将使用该值。如果没有,那么我们将搜索其他实例并使用它找到的 最后一个

As a fallback for the other ways of defining variables, Terraform searches the environment of its own process for environment variables named TF_VAR_ followed by the name of a declared variable.

Source

if the same variable is assigned multiple values, Terraform uses the last value it finds, overriding any previous values. Note that the same variable cannot be assigned multiple values within a single source.

所以这看起来像:

  • 环境变量
  • terraform.tfvars 文件(如果存在)。
  • terraform.tfvars.json 文件(如果存在)。
  • 任何 *.auto.tfvars 或 *.auto.tfvars.json 文件,按文件名的词法顺序处理。
  • 命令行上的任何 -var 和 -var-file 选项,按照它们提供的顺序排列。 (这包括由 Terraform Cloud 工作区设置的变量。)

Source