Terraform Resource Meta-Argument for_each¶
Step-01: Introduction¶
- Understand about Meta-Argument
for_each - Implement
for_eachwith Maps - Implement
for_eachwith Set of Strings
Step-02: Implement for_each with Maps¶
- Reference Folder: v1-for_each-maps
- Use case: Create four S3 buckets using for_each maps
- c2-s3bucket.tf
# Create S3 Bucket per environment with for_each and maps resource "aws_s3_bucket" "mys3bucket" { for_each = { dev = "my-dapp-bucket" qa = "my-qapp-bucket" stag = "my-sapp-bucket" prod = "my-papp-bucket" } bucket = "${each.key}-${each.value}" acl = "private" tags = { eachvalue = each.value Environment = each.key bucketname = "${each.key}-${each.value}" } }
Step-03: Execute Terraform Commands¶
# Switch to Working Directory
cd v1-for_each-maps
# Initialize Terraform
terraform init
# Validate Terraform Configuration Files
terraform validate
# Format Terraform Configuration Files
terraform fmt
# Generate Terraform Plan
terraform plan
Observation:
1) Four buckets creation will be generated in plan
2) Review Resource Names ResourceType.ResourceLocalName[each.key]
2) Review bucket name (each.key+each.value)
3) Review bucket tags
# Create Resources
terraform apply
Observation:
1) 4 S3 buckets should be created
2) Review bucket names and tags in AWS Management console
# Destroy Resources
terraform destroy
# Clean-Up
rm -rf .terraform*
rm -rf terraform.tfstate*
Step-04: Implement for_each with toset "Strings"¶
- Reference Folder: v2-for_each-toset
- Use case: Create four IAM Users using for_each toset strings
- c2-iamuser.tf
Step-05: Execute Terraform Commands¶
# Switch to Working Directory
cd v2-for_each-toset
# Initialize Terraform
terraform init
# Validate Terraform Configuration Files
terraform validate
# Format Terraform Configuration Files
terraform fmt
# Generate Terraform Plan
terraform plan
Observation:
1) Four IAM users creation will be generated in plan
2) Review Resource Names ResourceType.ResourceLocalName[each.key]
2) Review IAM User name (each.key)
# Create Resources
terraform apply
Observation:
1) 4 IAM users should be created
2) Review IAM users in AWS Management console
# Destroy Resources
terraform destroy
# Clean-Up
rm -rf .terraform*
rm -rf terraform.tfstate*
Reference¶
🎉 New Course
Ultimate DevOps Real-World Project Implementation on AWS
$15.99
$84.99
81% OFF
MARCH2026
Enroll Now on Udemy →
🎉 Offer