# Example of small server deploymentterraform{required_version=">= 0.12.26"}provider"aws"{region="us-east-2"}resource"aws_instance""example"{ami="ami-0d5d9d301c853a04a"instance_type="t2.micro"vpc_security_group_ids=[aws_security_group.instance.id]user_data=<<EOF#!/bin/bashecho "Hello, World!" > index.htmlnohup busybox httpd -f -p 8080 &EOF}resource"aws_security_group""instance"{ingress{from_port=8080to_port=8080protocol="tcp"cidr_blocks=["0.0.0.0/0"]}}output"public_ip"{value=aws_instance.example.public_ip}
// Example terraform testpackagetestimport("fmt""testing""time"http_helper"github.com/gruntwork-io/terratest/modules/http-helper""github.com/gruntwork-io/terratest/modules/terraform")funcTestTerraformAwsHelloWorldExample(t*testing.T){t.Parallel()// retryable errors in terraform testing.terraformOptions:=terraform.WithDefaultRetryableErrors(t,&terraform.Options{TerraformDir:"../examples",})deferterraform.Destroy(t,terraformOptions)terraform.InitAndApply(t,terraformOptions)publicIp:=terraform.Output(t,terraformOptions,"public_ip")url:=fmt.Sprintf("http://%s:8080",publicIp)http_helper.HttpGetWithRetry(t,url,nil,200,"Hello, World!",30,5*time.Second)}