Search code examples
amazon-web-servicesamazon-s3terraformterraform-provider-aws

Terraform and AWS: No Configuration Files Found Error


I am writing a small script that takes a small file from my local machine and puts it into an AWS S3 bucket.

My terraform.tf:

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"
}

However, when I init:

terraform 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.

and then try to apply:

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.

I get the error above. Also, I have setup my default AWS Access Key ID and value.

What can I do?


Solution

  • In case any one comes across this now, I ran into an issue where my TF_WORSPACE env var was set to a different workspace than the directory I was in. Double check your workspace with

    terraform workspace show

    to show your available workspaces

    terraform workspace list

    to use one of the listed workspaces:

    terraform workspace select <workspace name>

    If the TF_WORKSPACE env var is set when you try to use terraform workspace select TF will print a message telling you of the potential issue:

    The selected workspace is currently overridden using the TF_WORKSPACE
    environment variable.
    
    To select a new workspace, either update this environment variable or unset
    it and then run this command again.