An iterator variable is a temporary name used in loops or for_each expressions to represent each item being processed. It helps Terraform apply configurations repeatedly for multiple resources.
Click to reveal answer
beginner
How do you use an iterator variable in a Terraform for_each loop?
You define for_each with a map or set, and inside the resource block, use the iterator variable to access each item’s properties, like each.key or each.value.
Click to reveal answer
intermediate
What is the difference between each.key and each.value in Terraform iterator variables?
each.key is the current item's key in a map or set, while each.value is the value associated with that key. Use them to customize resource properties.
Click to reveal answer
intermediate
Can you use iterator variables with Terraform count? Why or why not?
No, count uses count.index instead of each. Iterator variables like each.key and each.value are for for_each loops only.
Click to reveal answer
beginner
Why are iterator variables helpful in Terraform configurations?
They let you write one resource block that creates many resources by looping over a list or map. This saves time and keeps code clean and easy to manage.
Click to reveal answer
In Terraform, what does each.value represent inside a for_each loop?
AThe current item's value in the loop
BThe index number of the loop
CThe total count of items
DThe resource type
✗ Incorrect
each.value holds the value of the current item being processed in a for_each loop.
Which iterator variable is used with Terraform's count argument?
Acount.index
Beach.value
Ceach.key
Ditem.index
✗ Incorrect
Terraform uses count.index with the count argument, not each variables.
What type of data structure can you use with for_each in Terraform?
AOnly maps
BMaps or sets
COnly lists
DOnly strings
✗ Incorrect
Terraform's for_each works with maps or sets to loop over multiple items.
Why might you prefer for_each with iterator variables over count in Terraform?
Afor_each does not support iterator variables
Bcount is faster but less readable
Ccount supports maps better
Dfor_each allows naming resources by keys, making management easier
✗ Incorrect
for_each lets you use keys as resource names, which helps organize and manage resources clearly.
What happens if you try to use each.value outside a for_each loop in Terraform?
AIt uses the last value processed
BIt defaults to null
CTerraform throws an error
DIt works as a global variable
✗ Incorrect
each.value only exists inside for_each loops; using it elsewhere causes an error.
Explain what an iterator variable is in Terraform and how it is used in a for_each loop.
Think about how Terraform repeats resource creation using keys and values.
You got /3 concepts.
Describe the difference between using count and for_each in Terraform, focusing on iterator variables.
Consider how resources are identified and accessed in each method.
You got /3 concepts.
Practice
(1/5)
1. What is the role of an iterator variable in a Terraform for expression?
easy
A. It represents each item in the list or map during iteration.
B. It defines the output type of the expression.
C. It sets the maximum number of iterations.
D. It stores the final result of the iteration.
Solution
Step 1: Understand the iterator variable concept
The iterator variable is a placeholder that takes each value from the list or map one by one during the loop.
Step 2: Identify its role in the for expression
It allows Terraform to perform actions on each item individually, making the code reusable and clean.
Final Answer:
It represents each item in the list or map during iteration. -> Option A
Quick Check:
Iterator variable = item placeholder [OK]
Hint: Think of iterator as the 'current item' in a loop [OK]
Common Mistakes:
Confusing iterator with output variable
Assuming iterator sets iteration count
Thinking iterator stores final results
2. Which of the following is the correct syntax for using an iterator variable item in a Terraform for expression over a list var.names?
easy
A. for item in var.names : item
B. [for item var.names : item]
C. [for item in var.names : item]
D. for (item in var.names) { item }
Solution
Step 1: Recall Terraform for expression syntax
Terraform uses square brackets with for item in list : expression to create a new list.
Step 2: Match the correct syntax
[for item in var.names : item] matches the correct syntax: [for item in var.names : item].
Final Answer:
[for item in var.names : item] -> Option C
Quick Check:
Correct for expression syntax = [for item in var.names : item] [OK]
Hint: Remember: Terraform for expressions use square brackets [OK]
Common Mistakes:
Omitting square brackets
Using parentheses instead of brackets
Missing 'in' keyword
3. Given the Terraform expression:
[for num in [1, 2, 3] : num * 2]
What is the resulting list?
medium
A. [1, 2, 3]
B. [2, 4, 6]
C. [3, 4, 5]
D. [2, 3, 4]
Solution
Step 1: Identify the iterator and list
The iterator variable is num, iterating over the list [1, 2, 3].
Step 2: Calculate each iteration's output
Each num is multiplied by 2: 1*2=2, 2*2=4, 3*2=6.
Final Answer:
[2, 4, 6] -> Option B
Quick Check:
Multiply each item by 2 = [2, 4, 6] [OK]
Hint: Apply the operation to each item in the list [OK]
Common Mistakes:
Confusing multiplication with addition
Returning original list without changes
Misreading the iterator variable
4. Identify the error in this Terraform for expression:
[for i var.list : i * 3]
medium
A. Missing 'in' keyword between iterator and list.
B. Iterator variable should be a string, not 'i'.
C. Square brackets are not allowed around for expressions.
D. The multiplication operator '*' is invalid here.
Solution
Step 1: Check for correct for expression syntax
The correct syntax requires the keyword 'in' between the iterator and the list.
Step 2: Identify the missing keyword
The expression misses 'in' after 'i', causing a syntax error.
Final Answer:
Missing 'in' keyword between iterator and list. -> Option A
Quick Check:
For expressions need 'in' keyword [OK]
Hint: Always include 'in' between iterator and collection [OK]
Common Mistakes:
Forgetting 'in' keyword
Using wrong brackets
Misplacing operators
5. You want to create a map from a list of server names var.servers = ["web", "db", "cache"] where each key is the server name and the value is the server port starting at 8000 incremented by 1. Which Terraform expression correctly uses an iterator variable to achieve this?
hard
A. { for srv in var.servers : srv => 8000 }
B. { for srv in var.servers : 8000 => srv }
C. [for srv in var.servers : { srv = 8000 }]
D. { for idx, srv in var.servers : srv => 8000 + idx }
Solution
Step 1: Understand the requirement
Create a map where keys are server names and values are ports starting at 8000 incremented by 1.
Step 2: Analyze options for correct iterator usage
{ for idx, srv in var.servers : srv => 8000 + idx } uses for idx, srv in var.servers to get index and server name, then maps srv => 8000 + idx, correctly incrementing ports.
Final Answer:
{ for idx, srv in var.servers : srv => 8000 + idx } -> Option D
Quick Check:
Use index and value in for map expression [OK]
Hint: Use index and value in for map to increment ports [OK]
Common Mistakes:
Using list syntax instead of map
Not using index to increment port
Swapping key and value positions
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.