terraform.tfvars文件:为什么需要可变块

时间:2019-03-20 13:55:37

标签: terraform

我创建了以下terraform.tfvars文件:

ec2_image = "ami-00035f41c82244dab"
ec2_instance_type = "t2.micro"

并在main.tf文件中按以下方式使用它:

resource "aws_instance" "OneServer" {
    ami             =       "${var.ec2_image}"
    instance_type   =       "${var.ec2_instance_type}"
}

然后我执行“ terraform plan”命令,并抱怨:

  

错误:资源'aws_instance.OneServer'配置:未知变量   引用:“ ec2_image”;用“变量”块定义它

所以我如下更改了main.tf文件:

variable "ec2_image" {}
variable "ec2_instance_type" {}

resource "aws_instance" "OneServer" {
    ami             =       "${var.ec2_image}"
    instance_type   =       "${var.ec2_instance_type}"
}

然后,“地形计划”命令正常运行。

我不明白为什么需要这些变量块。有什么意义呢?

1 个答案:

答案 0 :(得分:0)

您是否真的在使用-var-file命令行开关?

例如,我不使用该开关-我只是在随机的tf文件(在我的情况下为variable.tf中命名)中定义了可覆盖的变量。如果未使用-var-file开关,则意味着需要variable块来告知Terraform何时定义变量。