0
0
Terraformcloud~5 mins

Outputs for module communication in Terraform - Cheat Sheet & Quick Revision

Choose your learning style9 modes available
Recall & Review
beginner
What is the purpose of output blocks in Terraform modules?
Output blocks allow a module to expose values to the parent module or root configuration. They help share information like resource IDs or IP addresses between modules.
Click to reveal answer
beginner
How do you reference an output from a child module in the root module?
Use module.<module_name>.<output_name>. For example, module.webserver.ip_address accesses the ip_address output from the webserver module.
Click to reveal answer
intermediate
Can outputs be used to pass sensitive information between modules?
Yes, outputs can be marked as sensitive = true to hide their values in Terraform's output and logs, helping protect secrets during module communication.
Click to reveal answer
intermediate
What happens if a module output is not defined but you try to access it?
Terraform will return an error during plan or apply, indicating the output does not exist. Outputs must be explicitly declared in the module to be accessible.
Click to reveal answer
advanced
Why is it a best practice to use outputs for module communication instead of directly accessing resources?
Outputs create a clear interface for modules, improving modularity and encapsulation. This avoids tight coupling and makes modules reusable and easier to maintain.
Click to reveal answer
How do you define an output in a Terraform module?
AUsing an <code>output</code> block with a <code>value</code> attribute
BUsing a <code>variable</code> block
CUsing a <code>resource</code> block
DUsing a <code>provider</code> block
How do you access an output named db_endpoint from a module called database?
A<code>output.database.db_endpoint</code>
B<code>module.database.db_endpoint</code>
C<code>var.database.db_endpoint</code>
D<code>resource.database.db_endpoint</code>
What does setting sensitive = true on an output do?
AMakes the output read-only
BEncrypts the output value in the state file
CPrevents the output from being shown in Terraform plan and apply output
DAutomatically deletes the output after apply
If a module does not define an output, can you still access its resource attributes directly from the root module?
AOnly if you use data sources
BYes, always
COnly if the resource is public
DNo, you must define outputs to expose values
Why is using outputs for module communication considered a best practice?
AIt creates a clear interface and improves module reusability
BIt makes Terraform run faster
CIt reduces the number of resources created
DIt automatically documents the module
Explain how outputs enable communication between Terraform modules and why they are important.
Think about how one module shares information with another.
You got /4 concepts.
    Describe how to mark an output as sensitive and why you might want to do that.
    Consider security when sharing secrets.
    You got /3 concepts.