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
Terraform fmt for formatting
📖 Scenario: You are working on a Terraform project to manage cloud infrastructure. Your Terraform files need to be clean and easy to read for your team.
🎯 Goal: Learn how to use terraform fmt to automatically format Terraform configuration files for better readability and consistency.
📋 What You'll Learn
Create a Terraform configuration file with unformatted code
Add a variable block with a default value
Write a resource block with minimal formatting
Apply terraform fmt to format the code properly
💡 Why This Matters
🌍 Real World
Terraform fmt is used by cloud engineers to keep infrastructure code clean and consistent, making collaboration easier.
💼 Career
Knowing terraform fmt is essential for cloud infrastructure roles to maintain readable and standardized Terraform code.
Progress0 / 4 steps
1
Create an unformatted Terraform configuration file
Create a file named main.tf with this exact unformatted content: variable "region"{default="us-west-2"}resource "aws_s3_bucket" "bucket"{bucket="mybucket"}
Terraform
Hint
Write the variable and resource blocks without spaces or new lines as shown.
2
Add a variable block with default value
Add a variable block named environment with a default value of dev to the existing main.tf file.
Terraform
Hint
Write the variable block exactly as variable "environment" {default = "dev"}.
3
Add a minimally formatted resource block
Add a resource block named aws_instance with the name web and an attribute ami set to ami-123456 in main.tf. Write it without extra spaces or new lines.
Terraform
Hint
Write the resource block exactly as resource "aws_instance" "web"{ami="ami-123456"}.
4
Format the Terraform configuration using terraform fmt
Run the command terraform fmt in the directory containing main.tf to format the Terraform configuration file properly.
Terraform
Hint
Use the terraform fmt command in your terminal to format the file.
Practice
(1/5)
1. What is the main purpose of the terraform fmt command?
easy
A. To check for syntax errors in Terraform files
B. To deploy infrastructure to the cloud
C. To automatically format Terraform configuration files for readability
D. To destroy all Terraform-managed resources
Solution
Step 1: Understand the role of terraform fmt
This command is designed to clean up and standardize the formatting of Terraform files, making them easier to read and maintain.
Step 2: Differentiate from other commands
Unlike commands that deploy or destroy resources, terraform fmt only changes the file layout without affecting infrastructure.
Final Answer:
To automatically format Terraform configuration files for readability -> Option C
Quick Check:
Formatting = Readability [OK]
Hint: Remember: fmt = format code, not deploy or destroy [OK]
Common Mistakes:
Confusing fmt with terraform apply
Thinking fmt checks syntax errors
Assuming fmt manages resources
2. Which of the following is the correct way to run terraform fmt on all files in the current directory?
easy
A. terraform fmt
B. terraform fmt -recursive
C. terraform fmt -all
D. terraform fmt --format-all
Solution
Step 1: Recall default behavior of terraform fmt
By default, running terraform fmt without flags formats all Terraform files in the current directory.
Step 2: Check other options
Options like -recursive exist to format subdirectories, but -all and --format-all are invalid flags.
Final Answer:
terraform fmt -> Option A
Quick Check:
Default fmt formats current directory [OK]
Hint: No flags needed to format current folder files [OK]
Common Mistakes:
Using invalid flags like -all or --format-all
Confusing recursive flag with default behavior
Expecting fmt to format files outside current directory by default
3. Given this Terraform snippet before formatting:
resource "aws_instance" "example" {
ami = "ami-123456"
instance_type= "t2.micro"
}
What will terraform fmt do to this code?
medium
A. Add comments explaining each line
B. Add spaces around the equals sign and indent the block properly
C. Remove the resource block entirely
D. Change the resource type to "aws_server"
Solution
Step 1: Identify formatting issues
The snippet lacks spaces around the equals sign and proper indentation inside the resource block.
Step 2: Understand what terraform fmt fixes
It adds spaces around operators and indents blocks correctly but does not change resource types or add comments.
Final Answer:
Add spaces around the equals sign and indent the block properly -> Option B
Quick Check:
Fmt fixes spacing and indentation [OK]
Hint: Fmt fixes spacing and indentation, not content [OK]
Common Mistakes:
Thinking fmt changes resource types
Expecting fmt to add comments
Assuming fmt deletes code blocks
4. You ran terraform fmt but your Terraform files still look messy. What is the most likely reason?
medium
A. Terraform fmt does not change file formatting
B. Terraform fmt only works on .tfvars files
C. Your files have syntax errors preventing formatting
D. You ran terraform fmt in the wrong directory
Solution
Step 1: Check where terraform fmt runs
The command formats files in the current directory by default, so running it elsewhere won't affect your target files.
Step 2: Eliminate other options
Terraform fmt does change formatting, works on .tf files, and does not require syntax correctness to format.
Final Answer:
You ran terraform fmt in the wrong directory -> Option D
Quick Check:
Run fmt where files are located [OK]
Hint: Run fmt in folder with your Terraform files [OK]
Common Mistakes:
Assuming fmt fixes syntax errors
Thinking fmt works on .tfvars files only
Expecting fmt to format files outside current folder
5. You want to ensure all Terraform files in your project and all subfolders are formatted consistently before committing code. Which command should you use?
hard
A. terraform fmt -recursive
B. terraform fmt -all
C. terraform fmt --check
D. terraform fmt --init
Solution
Step 1: Understand recursive formatting
The -recursive flag tells terraform fmt to format files in the current directory and all subdirectories.
Step 2: Review other options
-all and --init are invalid flags; --check only verifies formatting without changing files.
Final Answer:
terraform fmt -recursive -> Option A
Quick Check:
Recursive flag formats all folders [OK]
Hint: Use -recursive to format all subfolders [OK]