Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Comments in HCL
📖 Scenario: You are writing a Terraform configuration file to manage cloud infrastructure. To keep your code clear and easy to understand, you want to add comments explaining what each part does.
🎯 Goal: Learn how to add single-line and multi-line comments in a Terraform configuration file using HCL syntax.
📋 What You'll Learn
Create a Terraform variable block with a description comment
Add a single-line comment above a resource block
Use a multi-line comment inside the resource block
Add a trailing comment on a resource attribute
💡 Why This Matters
🌍 Real World
Comments in Terraform files help teams understand infrastructure code, making collaboration and maintenance easier.
💼 Career
Cloud engineers and DevOps professionals use comments to document infrastructure as code, improving clarity and reducing errors.
Progress0 / 4 steps
1
Create a variable block with a description comment
Create a Terraform variable block named region with type string and default value "us-west-1". Add a single-line comment above it that says # This variable sets the AWS region.
Terraform
Hint
Use # for single-line comments in HCL.
2
Add a single-line comment above a resource block
Add a single-line comment # Create an AWS S3 bucket above a resource block named aws_s3_bucket with resource name my_bucket. The resource block should have an attribute bucket set to "my-terraform-bucket".
Terraform
Hint
Use # for single-line comments above blocks.
3
Use a multi-line comment inside the resource block
Inside the aws_s3_bucket resource block, add a multi-line comment that says This bucket stores terraform state files. Use the /* ... */ syntax for the multi-line comment.
Terraform
Hint
Use /* to start and */ to end multi-line comments.
4
Add a trailing comment on a resource attribute
Add a trailing comment # Bucket name on the same line as the bucket attribute inside the aws_s3_bucket resource block.
Terraform
Hint
Trailing comments start with # after the code on the same line.
Practice
(1/5)
1. What is the purpose of comments in Terraform's HCL language?
easy
A. To explain the code without affecting its execution
B. To execute additional commands
C. To speed up the Terraform apply process
D. To delete unused resources automatically
Solution
Step 1: Understand the role of comments
Comments are notes in code that help explain what the code does but do not change how it runs.
Step 2: Identify the correct purpose
Since comments do not execute or affect resources, their purpose is purely explanatory.
Final Answer:
To explain the code without affecting its execution -> Option A
Quick Check:
Comments explain code [OK]
Hint: Comments never change code behavior, only explain it [OK]
Common Mistakes:
Thinking comments run code
Assuming comments speed up deployment
Believing comments delete resources
2. Which of the following is a valid single-line comment syntax in Terraform HCL?
easy
A. /* This is a comment */
B. # This is a comment
C. -- This is a comment
D. %% This is a comment
Solution
Step 1: Recall single-line comment syntax in HCL
Terraform HCL supports # and // for single-line comments.
Step 2: Match options with valid syntax
# This is a comment uses #, which is valid. /* This is a comment */ is multi-line comment syntax. Options C and D are invalid in HCL.
Final Answer:
# This is a comment -> Option B
Quick Check:
Single-line comment = # or // [OK]
Hint: Single-line comments start with # or // only [OK]
Common Mistakes:
Using -- or %% which are not valid in HCL
Confusing multi-line comment syntax for single-line
Omitting comment symbols
3. What will happen if you run this Terraform code snippet?
resource "aws_instance" "example" {
ami = "ami-123456"
instance_type = "t2.micro" # This is a small instance
// This line is ignored
/* multi-line
comment here */
}
medium
A. Terraform will create an AWS instance ignoring all comments
B. Terraform will throw a syntax error due to comments
C. Terraform will create an instance but ignore the instance_type
D. Terraform will skip the resource block entirely
Solution
Step 1: Understand how comments affect Terraform code
Comments are ignored by Terraform during execution and do not affect resource creation.
Step 2: Analyze the code snippet
The resource block is valid with comments in single-line (#, //) and multi-line (/* */) forms. Terraform will create the instance as specified.
Final Answer:
Terraform will create an AWS instance ignoring all comments -> Option A
Quick Check:
Comments ignored, resource created [OK]
Hint: Comments do not affect resource creation or syntax [OK]
Common Mistakes:
Thinking comments cause syntax errors
Assuming comments disable resource properties
Believing comments skip resource blocks
4. Identify the error in this Terraform snippet:
resource "aws_s3_bucket" "bucket" {
bucket = "my-bucket"
/* This is a multi-line comment
missing the closing tag
medium
A. Single-line comment used incorrectly
B. Incorrect resource type name
C. Bucket name must be numeric
D. Missing closing */ for multi-line comment
Solution
Step 1: Check multi-line comment syntax
Multi-line comments start with /* and must end with */. The snippet lacks the closing */.
Step 2: Confirm other parts are correct
Resource type and bucket name are valid. No single-line comment issues.
Final Answer:
Missing closing */ for multi-line comment -> Option D
Quick Check:
Unclosed multi-line comment [OK]
Hint: Always close multi-line comments with */ [OK]
Common Mistakes:
Forgetting to close multi-line comments
Confusing resource type errors with comment errors
Assuming bucket names must be numeric
5. You want to temporarily disable a block of Terraform code without deleting it. Which comment style should you use to comment out multiple lines safely?
hard
A. Use # at the start of each line
B. Use // at the start of each line
C. Use /* */ to wrap the entire block
D. Use XML style <!-- --> comments
Solution
Step 1: Review comment styles for multiple lines
Single-line comments (# or //) require prefixing each line, which is tedious for many lines.
Step 2: Identify the best multi-line comment method
Using /* */ wraps multiple lines easily, disabling the entire block at once.
Step 3: Exclude invalid options
XML style comments are not valid in HCL.
Final Answer:
Use /* */ to wrap the entire block -> Option C
Quick Check:
Multi-line comments use /* */ [OK]
Hint: Wrap multiple lines with /* and */ to comment out block [OK]
Common Mistakes:
Using # or // for many lines instead of block comment