How to Display Output After Apply in Terraform
To display output after running
terraform apply, define output blocks in your Terraform configuration. After applying, Terraform automatically shows these outputs in the terminal, or you can use terraform output to view them anytime.Syntax
An output block defines a value you want Terraform to show after applying changes. It has a value attribute that specifies what to display.
- output "name": Names the output.
- value: The expression or resource attribute to display.
terraform
output "example_output" {
value = aws_instance.my_instance.public_ip
}Example
This example creates an AWS EC2 instance and outputs its public IP address after applying.
terraform
provider "aws" { region = "us-east-1" } resource "aws_instance" "my_instance" { ami = "ami-0c55b159cbfafe1f0" instance_type = "t2.micro" } output "instance_public_ip" { value = aws_instance.my_instance.public_ip }
Output
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
Outputs:
instance_public_ip = "54.210.123.45"
Common Pitfalls
Common mistakes include:
- Not defining an
outputblock, so no output shows. - Referencing a resource attribute that does not exist or is misspelled.
- Expecting outputs to show before
terraform applyruns.
Always run terraform apply first, then view outputs.
terraform
output "wrong_output" { value = aws_instance.my_instance.non_existent_attribute } # Correct usage: output "correct_output" { value = aws_instance.my_instance.public_ip }
Quick Reference
Tips to remember:
- Define outputs in your Terraform files to see values after apply.
- Use
terraform outputcommand to view outputs anytime. - Outputs help share important info like IPs, IDs, or URLs.
Key Takeaways
Define
output blocks in Terraform to display values after apply.Run
terraform apply to create resources and show outputs automatically.Use
terraform output command to view outputs anytime after apply.Ensure output references valid resource attributes to avoid errors.
Outputs help share important infrastructure details like IP addresses or IDs.