terraform变量不适用于应用程序

terraform变量不适用于应用程序,terraform,Terraform,在针对以下内容运行terraform apply时,它会不断要求我在CLI上输入变量,而不是从文件中接受变量,如果我从.tf文件中删除变量,并将第一个变量保留在ami中,它会进行一些处理。有什么想法吗 dev.tf的内容: variable "aws_region" {} variable "instance_type" {} variable "key_name" {} variable "vpc_security_group_ids" {} variable "subnet_id" {} v

在针对以下内容运行terraform apply时,它会不断要求我在CLI上输入变量,而不是从文件中接受变量,如果我从.tf文件中删除变量,并将第一个变量保留在ami中,它会进行一些处理。有什么想法吗

dev.tf的内容:

variable "aws_region" {}
variable "instance_type" {}
variable "key_name" {}
variable "vpc_security_group_ids" {}
variable "subnet_id" {}
variable "iam_instance_profile" {}
variable "tag_env" {}

provider "aws" {
  region = "${var.aws_region}"
}

data "aws_ami" "amazon_linux" {
  most_recent = true

  filter {
    name = "name"

    values = [
      "amzn-ami-hvm-*-x86_64-gp2",
    ]
  }

  filter {
    name = "owner-alias"

    values = [
      "amazon",
    ]
  }
}

resource "aws_instance" "kafka" {
  ami              = "${data.aws_ami.amazon_linux.id}"
  instance_type          = "${var.instance_type}"
  subnet_id              = "${var.subnet_id}"
  key_name               = "${var.key_name}"
  vpc_security_group_ids = ["${var.vpc_security_group_ids}"]
  iam_instance_profile   = "${var.iam_instance_profile}"



  user_data = <<-EOF
              #!/bin/bash
              sudo yum -y install telnet  
              EOF



  tags {
    ProductCode = "id"
    InventoryCode = "id"
    Environment = "${var.tag_env}"
  }
}

好主意,将文件名改为terraform.tfvars,现在可以使用了。

好主意,将文件名更改为terraform.tfvars,现在可以使用了。

您可以添加运行terraform所用的命令吗?默认情况下,terraform将只拉入名为
terraform.tfvars的vars文件。
如果您想为它们提供不同的文件名,您需要添加
-var file=dev.tfvars
您可以添加什么命令吗您正在使用运行Terraform?Terraform默认情况下只会拉入名为
Terraform.tfvars
的var文件,如果您想为它们提供不同的文件名,则需要添加
-var file=dev.tfvars
aws_region = "us-east-1"
tag_env = "dev"
instance_type = "t2.large"
subnet_id = "subnet-id"
vpc_security_group_ids = "sg-id , sg-id"
key_name = "id"
iam_instance_profile = "id"