output "bucket_name" { value = aws_s3_bucket.this.bucket }
Enter fullscreen mode
Exit fullscreen mode
3️⃣ Root Module — for_each Over Environments
main.tf
provider "aws" { region = "us-west-1" } locals { environments = { dev = "dev-app-bucket-aj" prod = "prod-app-bucket-aj" } } module "s3" { source = "./modules/s3-bucket" for_each = local.environments bucket_name = each.value } output "bucket_names" { value = { for env, mod in module.s3 : env => mod.bucket_name } }
Enter fullscreen mode
Exit fullscreen mode
4️⃣ Commands
terraform init terraform plan terraform apply
Enter fullscreen mode
Exit fullscreen mode
5️⃣ What This Project Demonstrates (EXAM MAPPING)
Exam Topic
Demonstrated
Module + for_each
YES
Environment pattern
dev / prod
locals usage
YES
Output map
YES
Deterministic resource creation
YES
6️⃣ Answers to Exam Questions (FROM THIS PROJECT)
Q: When should for_each be used instead of count? ✔️ When using named keys (dev/prod)
Q: Can modules be used with for_each? ✔️ YES — fully supported
Q: What does module.s3["dev"] represent? ✔️ Dev environment module instance
FINAL CERTIFICATION SUMMARY (MEMORIZE THIS)
Terraform modules encapsulate reusable infrastructure logic. Root modules compose child modules, pass inputs, and consume outputs. Modules can be reused, versioned, and instantiated using count or for_each. All module resources are tracked in a single Terraform state.
For further actions, you may consider blocking this person and/or reporting abuse
Залишити відповідь