我创建了以下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}"
}
然后,“地形计划”命令正常运行。
我不明白为什么需要这些变量块。有什么意义呢?
答案 0 :(得分:0)
您是否真的在使用-var-file
命令行开关?
例如,我不使用该开关-我只是在随机的tf
文件(在我的情况下为variable.tf
中命名)中定义了可覆盖的变量。如果未使用-var-file
开关,则意味着需要variable
块来告知Terraform何时定义变量。