Terraform AWS:错误未找到配置文件

时间:2018-09-16 07:07:37

标签: amazon-web-services amazon-s3 terraform terraform-provider-aws

我是Terraform的新手。我正在编写一个小脚本,将一个小的数据文件从我的机器放到aws S3存储桶中。但是我遇到了以下错误。

Terraform文件代码:-

provider "aws" {
  region  = "us-east-1"
  version = "~> 1.6"
}

terraform {
  backend "s3" {
    bucket     = "${var.bucket_testing}"
    kms_key_id = "arn:aws:kms:us-east-1:12345678900:key/12312313ed-34sd-6sfa-90cvs-1234asdfasd"
    key     = "testexport/exportFile.tfstate"
    region  = "us-east-1"
    encrypt = true
  }
}

data "aws_s3_bucket" "pr-ip" {
  bucket = "${var.bucket_testing}"
}

resource "aws_s3_bucket_object" "put_file" {
  bucket = "${data.aws_s3_bucket.pr-ip.id}"
  key    = "${var.file_path}/${var.file_name}"
  source = "src/Datafile.txt"
  etag = "${md5(file("src/Datafile.txt"))}"

  kms_key_id = "arn:aws:kms:us-east-1:12345678900:key/12312313ed-34sd-6sfa-90cvs-1234asdfasd"
  server_side_encryption = "aws:kms"
}

终端错误

terrain init

Terraform initialized in an empty directory!

The directory has no Terraform configuration files. You may begin working
with Terraform immediately by creating Terraform configuration files.

$ terraform apply

Error: No configuration files found!

Apply requires configuration to be present. Applying without a configuration
would mark everything for destruction, which is normally not what is desired.
If you would like to destroy everything, please run 'terraform destroy' instead
which does not require any configuration files.

我还设置了默认的AWS Access Key ID和值。

请帮助。谢谢!

4 个答案:

答案 0 :(得分:4)

此错误表示您在错误的位置运行了命令。您必须位于包含配置文件的目录中,因此在运行initapply之前,必须cd进入Terraform项目文件夹。

答案 1 :(得分:1)

Error: No configuration files found!

当您不存在于包含配置文件的文件夹中时,会出现上述错误。 要纠正这种情况,您可以在将要工作的项目文件夹中创建一个 .tf 注意-空的 .tf 也可以消除该错误,但由于它不包含提供者信息,因此用途有限。 请参见下面的示例:-

provider "aws" {
    region = "us-east" #Below value will be asked when the terraform apply command is executed if not provided here
   }
 

因此,为了成功执行 terraform apply 命令,您需要确保以下几点:-

  1. 您需要出现在terraform项目文件夹中(可以是任何目录)。
  2. 必须包含 .tf ,最好应包含terraform提供商信息。
  3. 执行 terrain init 初始化后端和提供程序插件。
  4. 您现在可以执行 terrain apply (没有任何配置错误)

答案 2 :(得分:0)

您也模拟了相同的错误,就我而言,这不是VPN错误,但文件不正确  系统命名。我在项目文件夹中。为纠正这种情况,我创建了一个.tf文件  使用vim编辑器,使用命令vi aws.tf,然后使用定义的变量填充文件。我的正在工作。

查看我的附件图片

enter image description here

答案 3 :(得分:0)

我也有同样的问题,记住 terraform 文件名应该以 .tf 作为扩展名结束