What are outputs?
Outputs print useful resource information after terraform apply — IDs, public IPs, DNS names, and anything else you want to share with other stacks or teammates.
Output syntax
output "instance_id" {
value = aws_instance.example.id
}
output "public_ip" {
value = aws_instance.example.public_ip
}
output "bucket_name" {
value = aws_s3_bucket.demo.bucket
}outputs.tf example
output "instance_id" {
description = "EC2 instance ID"
value = aws_instance.ec2_instance.id
}
output "public_ip" {
description = "EC2 public IP"
value = aws_instance.ec2_instance.public_ip
}
output "bucket_name" {
description = "S3 bucket name"
value = aws_s3_bucket.s3_bucket.bucket
}After apply:
Apply complete!
Outputs:
bucket_name = "test-bucket-2335"
instance_id = "i-0123456789abcdef0"
public_ip = "13.233.xxx.xxx"
Viewing outputs later
terraform output
terraform output public_ipTypical project structure
| Purpose | File |
|---|---|
| Providers | provider.tf |
| Resources | main.tf |
| Variable declarations | variables.tf |
| Variable values | terraform.tfvars |
| Outputs | outputs.tf |
| Version constraints | versions.tf |
| State (local) | terraform.tfstate |
terraform-project/
├── main.tf
├── provider.tf
├── variables.tf
├── terraform.tfvars
├── outputs.tf
├── versions.tf
└── terraform.tfstate
For Day 2, focus on:
variables.tf → input variables
terraform.tfvars → variable values
outputs.tf → output values