github.com/darmach/terratest@v0.34.8-0.20210517103231-80931f95e3ff/examples/terraform-aws-s3-example/README.md (about) 1 # Terraform AWS S3 Example 2 3 This folder contains a simple Terraform module that deploys resources in [AWS](https://aws.amazon.com/) to demonstrate 4 how you can use Terratest to write automated tests for your AWS Terraform code. This module deploys 2 [S3 5 Buckets](https://aws.amazon.com/s3/) - one S3 Bucket with logging and versioning enabled, and another "targetBucket" one to serve as a 6 logging location for the first S3 Bucket. This module gives both Buckets a `Name` & `Environment` tag with the value 7 specified in the `tag_bucket_name` and `tag_bucket_environment` variables, respectively. This module also contains a terraform variable 8 that will create a basic bucket policy that will restrict the "origin" bucket to only accept SSL connections. 9 10 Check out [test/terraform_aws_s3_example_test.go](/test/terraform_aws_s3_example_test.go) to see how you can write 11 automated tests for this module. 12 13 Note that the S3 Buckets in this module will not contain any actual objects/files after creation; they will only contain a 14 versioning and logging configuration, as well as tags. For slightly more complicated, real-world examples of Terraform modules (with 15 other AWS services), see [terraform-http-example](/examples/terraform-http-example) and 16 [terraform-ssh-example](/examples/terraform-ssh-example). 17 18 **WARNING**: This module and the automated tests for it deploy real resources into your AWS account which can cost you 19 money. The resources are all part of the [AWS Free Tier](https://aws.amazon.com/free/), so if you haven't used that up, 20 it should be free, but you are completely responsible for all AWS charges. 21 22 23 24 25 26 ## Running this module manually 27 28 1. Sign up for [AWS](https://aws.amazon.com/). 29 1. Configure your AWS credentials using one of the [supported methods for AWS CLI 30 tools](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html), such as setting the 31 `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` environment variables. If you're using the `~/.aws/config` file for profiles then export `AWS_SDK_LOAD_CONFIG` as "True". 32 1. Set the AWS region you want to use as the environment variable `AWS_DEFAULT_REGION`. 33 1. Install [Terraform](https://www.terraform.io/) and make sure it's on your `PATH`. 34 1. Run `terraform init`. 35 1. Run `terraform apply`. 36 1. When you're done, run `terraform destroy`. 37 38 39 40 41 ## Running automated tests against this module 42 43 1. Sign up for [AWS](https://aws.amazon.com/). 44 1. Configure your AWS credentials using one of the [supported methods for AWS CLI 45 tools](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html), such as setting the 46 `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` environment variables. If you're using the `~/.aws/config` file for profiles then export `AWS_SDK_LOAD_CONFIG` as "True". 47 1. Install [Terraform](https://www.terraform.io/) and make sure it's on your `PATH`. 48 1. Install [Golang](https://golang.org/) and make sure this code is checked out into your `GOPATH`. 49 1. `cd test` 50 1. `dep ensure` 51 1. `go test -v -run TestTerraformAwsS3Example`