Bird
Raised Fist0
Terraformcloud~5 mins

Collection functions (length, flatten, merge) in Terraform - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the length() function do in Terraform collections?
The length() function returns the number of items in a list, map, or string. It helps you count how many elements are inside a collection.
Click to reveal answer
beginner
How does the flatten() function work in Terraform?
The flatten() function takes a list of lists and combines all inner lists into a single flat list. It removes one level of nesting.
Click to reveal answer
beginner
What is the purpose of the merge() function in Terraform?
The merge() function combines two or more maps into one map. If keys overlap, later maps overwrite earlier ones.
Click to reveal answer
beginner
Example: What is the output of length(["apple", "banana", "cherry"])?
The output is 3 because there are three items in the list.
Click to reveal answer
beginner
Example: What does flatten([[1, 2], [3, 4], [5]]) return?
It returns [1, 2, 3, 4, 5], a single list with all elements from the inner lists combined.
Click to reveal answer
What does length(["a", "b", "c"]) return?
A3
B2
C1
DError
What is the result of flatten([["x"], ["y", "z"]])?
A["x", "y", "z"]
B[["x"], ["y", "z"]]
C["x"]
DError
What does merge({a=1, b=2}, {b=3, c=4}) return?
A{a=1, b=2, c=4}
B{a=1, b=3, c=4}
C{a=1, b=2}
DError
Which function would you use to count items in a list?
Aconcat()
Bmerge()
Cflatten()
Dlength()
If you have a list of lists, which function helps you make it a single list?
Alength()
Bmerge()
Cflatten()
Dsplit()
Explain how the length(), flatten(), and merge() functions work in Terraform collections.
Think about counting, combining lists, and combining maps.
You got /3 concepts.
    Describe a real-life example where you might use flatten() and merge() in Terraform.
    Imagine organizing lists or settings from different sources.
    You got /2 concepts.

      Practice

      (1/5)
      1. What does the Terraform function length() do when applied to a list?
      easy
      A. Returns the number of items in the list
      B. Combines all items into a single string
      C. Flattens nested lists into one list
      D. Merges the list with another list

      Solution

      1. Step 1: Understand the purpose of length()

        The length() function counts how many elements are in a list, map, or string.
      2. Step 2: Apply to a list context

        When used on a list, it returns the total number of items inside that list.
      3. Final Answer:

        Returns the number of items in the list -> Option A
      4. Quick Check:

        length(list) = count of items [OK]
      Hint: Count items with length() to get list size fast [OK]
      Common Mistakes:
      • Thinking length() merges lists
      • Confusing length() with flatten()
      • Assuming length() returns the list itself
      2. Which of the following is the correct syntax to merge two maps map1 and map2 in Terraform?
      easy
      A. length(map1, map2)
      B. flatten(map1, map2)
      C. map1 + map2
      D. merge(map1, map2)

      Solution

      1. Step 1: Identify the function for combining maps

        The merge() function is used to combine two or more maps into one.
      2. Step 2: Check syntax correctness

        The correct syntax is merge(map1, map2). Other options either use wrong functions or invalid operators.
      3. Final Answer:

        merge(map1, map2) -> Option D
      4. Quick Check:

        merge() combines maps correctly [OK]
      Hint: Use merge() with parentheses and commas for maps [OK]
      Common Mistakes:
      • Using + operator to merge maps
      • Confusing flatten() with merge()
      • Passing maps without commas
      3. What is the output of this Terraform expression?
      flatten([["a", "b"], ["c"], ["d", "e"]])
      medium
      A. [["a", "b"], ["c"], ["d", "e"]]
      B. ["a", "b", "c", "d", "e"]
      C. ["a", "b", ["c"], "d", "e"]
      D. Error: flatten() only works on maps

      Solution

      1. Step 1: Understand flatten() function

        The flatten() function takes a list of lists and combines all inner lists into one single list.
      2. Step 2: Apply flatten() to the given nested list

        Input is [["a", "b"], ["c"], ["d", "e"]]. Flattening merges all inner lists into ["a", "b", "c", "d", "e"].
      3. Final Answer:

        ["a", "b", "c", "d", "e"] -> Option B
      4. Quick Check:

        flatten(nested list) = single list [OK]
      Hint: flatten() removes inner list brackets to one list [OK]
      Common Mistakes:
      • Thinking flatten() returns original nested list
      • Expecting flatten() to work on maps
      • Confusing flatten() with merge()
      4. Given the code snippet:
      locals {
        map1 = { a = 1, b = 2 }
        map2 = { b = 3, c = 4 }
        result = merge(map1, map2)
      }

      What is the value of local.result?
      medium
      A. { a = 1, b = 3, c = 4 }
      B. { a = 1, b = 2, c = 4 }
      C. { a = 1, b = 5, c = 4 }
      D. Error: duplicate keys not allowed in merge

      Solution

      1. Step 1: Understand merge() behavior with duplicate keys

        When keys overlap, the value from the last map argument overrides earlier ones.
      2. Step 2: Apply merge to map1 and map2

        map1 has b=2, map2 has b=3. The merged map uses b=3 from map2, so result is { a=1, b=3, c=4 }.
      3. Final Answer:

        { a = 1, b = 3, c = 4 } -> Option A
      4. Quick Check:

        merge() overrides duplicate keys with last map [OK]
      Hint: Last map's keys override earlier ones in merge() [OK]
      Common Mistakes:
      • Assuming values add up for duplicate keys
      • Expecting error on duplicate keys
      • Confusing merge() with flatten()
      5. You have a list of maps:
      list_of_maps = [
        { name = "Alice", age = 30 },
        { name = "Bob", age = 25 },
        { name = "Carol", age = 27 }
      ]

      Which Terraform expression correctly merges all maps into one map with all keys and values combined?
      hard
      A. length(list_of_maps)
      B. flatten(list_of_maps)
      C. merge(list_of_maps...)
      D. merge(list_of_maps)

      Solution

      1. Step 1: Understand how to merge multiple maps in a list

        To merge all maps inside a list, you use the splat operator ... to unpack the list as arguments to merge().
      2. Step 2: Check each option

        merge(list_of_maps...) uses merge(list_of_maps...) which correctly merges all maps. flatten(list_of_maps) tries flatten on maps (invalid), C returns count, D passes list directly (invalid).
      3. Final Answer:

        merge(list_of_maps...) -> Option C
      4. Quick Check:

        Use merge() with ... to combine list of maps [OK]
      Hint: Use ... to unpack list when merging maps [OK]
      Common Mistakes:
      • Passing list directly to merge() without ...
      • Using flatten() on maps
      • Confusing length() with merge()
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard