According to theofficial Terraform documentationhere:
???? Terraform Docs – Declaring an Output Value
In Terraform 0.12 and later, you can directly use expressions in outputs without interpolation syntax:
output " instance_ip_addr " {
value = aws_instance.server.private_ip
}
This aligns perfectly withOption A:
output " instance_ip_addr " {
value = aws_instance.main.private_ip
}
Why not the others?
❌Option B: Incorrect syntax. " ${main.private_ip} " is referencing main as if it were a global variable or resource, but it isn’t defined. Plus, the output name is oddly written as aws_instance.instance_ip_addr, which is not a valid identifier format.
❌Option C: Although valid in older versions ( < = 0.11), interpolation with " ${} " isdeprecatedin Terraform 0.12+. The docs clearly advise using direct expressions instead.
❌Option D: Terraform hasno return statement; this is syntactically invalid in Terraform’s HCL.