Bird
Raised Fist0
Terraformcloud~5 mins

Conditional expressions (ternary) in Terraform - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a conditional expression (ternary) in Terraform?
A conditional expression in Terraform chooses one of two values based on a condition. It works like a simple if-else, written as: condition ? value_if_true : value_if_false.
Click to reveal answer
beginner
How do you write a conditional expression to set a variable to "small" if size is less than 10, otherwise "large"?
You write: size < 10 ? "small" : "large". This means if size is less than 10, use "small", else use "large".
Click to reveal answer
intermediate
Can Terraform conditional expressions be nested?
Yes, you can nest conditional expressions inside each other to handle multiple conditions, but keep it simple to avoid confusion.
Click to reveal answer
intermediate
What types of values can be returned by Terraform conditional expressions?
Terraform conditional expressions can return any type: strings, numbers, booleans, lists, or maps, as long as both possible values are the same type.
Click to reveal answer
beginner
Why use conditional expressions in Terraform configurations?
They let you write flexible and reusable code by choosing values based on conditions, like environment type or resource size, without repeating code.
Click to reveal answer
What is the correct syntax for a Terraform conditional expression?
Acondition then true_value else false_value
Bif (condition) { true_value } else { false_value }
Ccondition ? true_value : false_value
Dcondition ? false_value : true_value
In Terraform, what happens if the condition in a ternary expression is false?
AThe expression returns the value before the question mark (?)
BThe expression returns the value after the colon (:)
CTerraform throws an error
DThe expression returns null
Can you use different data types for the true and false values in a Terraform conditional expression?
ANo, both must be the same type
BYes, any types are allowed
COnly if one is a string
DOnly if one is a number
Which of these is a valid use case for Terraform conditional expressions?
AChoosing resource size based on environment
BWriting loops over resources
CDefining variables without conditions
DCreating new resource types
Is it recommended to nest many conditional expressions in Terraform?
ATerraform does not support nesting
BYes, always nest as much as possible
COnly if you use more than 5 conditions
DNo, it can make code hard to read
Explain how a Terraform conditional expression works and give a simple example.
Think of it like a simple if-else that picks one value.
You got /4 concepts.
    Describe best practices when using conditional expressions in Terraform configurations.
    Focus on readability and type consistency.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does this Terraform conditional expression do?
      var.is_production ? "prod" : "dev"
      easy
      A. Returns true or false
      B. Always returns "prod"
      C. Returns "prod" if var.is_production is true, otherwise "dev"
      D. Causes a syntax error

      Solution

      1. Step 1: Understand the condition

        The expression checks if var.is_production is true or false.
      2. Step 2: Evaluate the ternary expression

        If true, it returns "prod"; if false, it returns "dev".
      3. Final Answer:

        Returns "prod" if var.is_production is true, otherwise "dev" -> Option C
      4. Quick Check:

        Condition ? true_value : false_value = C [OK]
      Hint: Remember: condition ? value_if_true : value_if_false [OK]
      Common Mistakes:
      • Thinking it returns a boolean
      • Confusing true and false branches
      • Assuming it always returns the first value
      2. Which of these is the correct syntax for a Terraform conditional expression?
      easy
      A. condition : true_val ? false_val
      B. condition ? true_val : false_val
      C. condition ? (true_val, false_val)
      D. if (condition) then true_val else false_val

      Solution

      1. Step 1: Recall Terraform conditional syntax

        Terraform uses the format: condition ? true_val : false_val.
      2. Step 2: Compare options

        Only condition ? true_val : false_val matches this syntax exactly.
      3. Final Answer:

        condition ? true_val : false_val -> Option B
      4. Quick Check:

        Correct ternary syntax = D [OK]
      Hint: Look for question mark and colon in correct order [OK]
      Common Mistakes:
      • Using if-then-else syntax from other languages
      • Swapping question mark and colon
      • Using commas inside the expression
      3. Given this Terraform code:
      variable "env" { default = "test" }
      output "message" {
        value = var.env == "prod" ? "Deploy to production" : "Deploy to staging"
      }

      What will be the output value?
      medium
      A. Error: unknown variable
      B. "Deploy to production"
      C. "test"
      D. "Deploy to staging"

      Solution

      1. Step 1: Check variable value

        var.env is set to "test" by default.
      2. Step 2: Evaluate condition

        var.env == "prod" is false, so the false branch "Deploy to staging" is chosen.
      3. Final Answer:

        "Deploy to staging" -> Option D
      4. Quick Check:

        Condition false -> false branch output = A [OK]
      Hint: Check variable value before condition evaluation [OK]
      Common Mistakes:
      • Assuming default is "prod"
      • Confusing true and false branches
      • Expecting variable value as output
      4. Identify the error in this Terraform conditional expression:
      output "result" {
        value = var.enabled ? "yes" "no"
      }
      medium
      A. Missing colon ':' between true and false values
      B. Variable var.enabled is undefined
      C. Quotes around values are incorrect
      D. Ternary operator not supported in outputs

      Solution

      1. Step 1: Review ternary syntax

        The correct syntax requires a colon ':' between true and false values.
      2. Step 2: Identify missing colon

        The expression has "? \"yes\" \"no\"" missing the ':' separator.
      3. Final Answer:

        Missing colon ':' between true and false values -> Option A
      4. Quick Check:

        Syntax error due to missing ':' = A [OK]
      Hint: Check for '?' and ':' pair in ternary expressions [OK]
      Common Mistakes:
      • Omitting the colon ':'
      • Misplacing quotes
      • Assuming ternary not allowed in outputs
      5. You want to assign a resource name based on environment, but if the environment variable is empty or null, use "default" instead. Which expression correctly does this in Terraform?
      var.env == "" || var.env == null ? "default" : var.env
      hard
      A. var.env == "" || var.env == null ? "default" : var.env
      B. var.env == "" && var.env == null ? "default" : var.env
      C. var.env ? "default" : var.env
      D. var.env == null ? var.env : "default"

      Solution

      1. Step 1: Understand the requirement

        If var.env is empty string or null, use "default"; else use var.env.
      2. Step 2: Analyze each option

        var.env == "" || var.env == null ? "default" : var.env checks if var.env is empty or null, then returns "default", else var.env, matching the requirement exactly.
      3. Final Answer:

        var.env == "" || var.env == null ? "default" : var.env -> Option A
      4. Quick Check:

        Check empty or null -> default else env = B [OK]
      Hint: Check both empty string and null explicitly in condition [OK]
      Common Mistakes:
      • Using && instead of || causing wrong logic
      • Assuming var.env alone checks for empty or null
      • Swapping true and false branches
      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