Bird
Raised Fist0
Terraformcloud~10 mins

Default values in Terraform - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to set a default value for the variable.

Terraform
variable "region" {
  type    = string
  default = "[1]"
}
Drag options to blanks, or click blank then click option'
Aus-west-2
Btrue
C10
Dnull
Attempts:
3 left
💡 Hint
Common Mistakes
Using a boolean or number instead of a string for the default value.
Leaving the default value empty.
2fill in blank
medium

Complete the code to set a default value for the variable with a list of strings.

Terraform
variable "availability_zones" {
  type    = list(string)
  default = [1]
}
Drag options to blanks, or click blank then click option'
A3
B"us-west-2a"
Ctrue
D["us-west-2a", "us-west-2b"]
Attempts:
3 left
💡 Hint
Common Mistakes
Using a single string instead of a list.
Using a boolean or number instead of a list.
3fill in blank
hard

Fix the error in the variable default value to match the declared type.

Terraform
variable "instance_count" {
  type    = number
  default = [1]
}
Drag options to blanks, or click blank then click option'
A[3]
B"3"
C3
Dtrue
Attempts:
3 left
💡 Hint
Common Mistakes
Putting the number inside quotes, making it a string.
Using a list or boolean instead of a number.
4fill in blank
hard

Fill both blanks to define a variable with a map type and default values.

Terraform
variable "tags" {
  type    = map(string)
  default = { [1] = [2] }
}
Drag options to blanks, or click blank then click option'
A"Environment"
B"Production"
C"Version"
D"1.0"
Attempts:
3 left
💡 Hint
Common Mistakes
Using unquoted keys or values.
Mixing keys and values incorrectly.
5fill in blank
hard

Fill all three blanks to define a variable with a complex default map of strings.

Terraform
variable "metadata" {
  type    = map(string)
  default = {
    [1] = [2]
    [3] = "v1"
  }
}
Drag options to blanks, or click blank then click option'
A"Owner"
B"Alice"
C"Project"
D"CloudInfra"
Attempts:
3 left
💡 Hint
Common Mistakes
Using unquoted keys or values.
Mixing keys and values incorrectly.

Practice

(1/5)
1. What is the purpose of setting a default value for a variable in Terraform?
easy
A. To make the variable mandatory without a fallback
B. To provide a fallback value if no other value is given
C. To disable the variable completely
D. To automatically generate a random value

Solution

  1. Step 1: Understand variable defaults in Terraform

    Default values act as fallback values when no input is provided by the user.
  2. Step 2: Identify the purpose of default values

    They make variables optional and provide a safe, predictable value.
  3. Final Answer:

    To provide a fallback value if no other value is given -> Option B
  4. Quick Check:

    Default value = fallback [OK]
Hint: Default means fallback if no input given [OK]
Common Mistakes:
  • Thinking default makes variable mandatory
  • Assuming default disables the variable
  • Believing default auto-generates random values
2. Which of the following is the correct syntax to set a default value for a variable named region in Terraform?
easy
A. variable "region" { default = "us-east-1" }
B. variable region { default: "us-east-1" }
C. var region = default "us-east-1"
D. variable "region" = "us-east-1"

Solution

  1. Step 1: Recall Terraform variable block syntax

    Variables are declared with the keyword variable and a name in quotes.
  2. Step 2: Check correct default assignment

    The default value is set inside the block with default = "value".
  3. Final Answer:

    variable "region" { default = "us-east-1" } -> Option A
  4. Quick Check:

    Correct syntax uses variable block and default = value [OK]
Hint: Use variable "name" { default = "value" } [OK]
Common Mistakes:
  • Missing quotes around variable name
  • Using colon instead of equals for default
  • Assigning default outside variable block
3. Given this variable declaration:
variable "instance_type" {
  default = "t2.micro"
}

What will be the value of var.instance_type if no override is provided?
medium
A. null
B. Error: variable not set
C. empty string ""
D. "t2.micro"

Solution

  1. Step 1: Identify the default value in the variable block

    The variable instance_type has a default set to "t2.micro".
  2. Step 2: Understand behavior when no override is given

    If no value is provided, Terraform uses the default value automatically.
  3. Final Answer:

    "t2.micro" -> Option D
  4. Quick Check:

    Default used if no override [OK]
Hint: No override? Use default value [OK]
Common Mistakes:
  • Assuming null if no value given
  • Expecting error without override
  • Thinking default is empty string
4. You wrote this variable block:
variable "env" {
  default: "production"
}

Why does Terraform give a syntax error?
medium
A. Because default uses colon instead of equals sign
B. Because variable name must not be in quotes
C. Because default value must be a number
D. Because variable blocks cannot have defaults

Solution

  1. Step 1: Check the syntax for default assignment

    Terraform requires = to assign default values, not a colon.
  2. Step 2: Identify the cause of syntax error

    Using default: "production" causes a syntax error because colon is invalid here.
  3. Final Answer:

    Because default uses colon instead of equals sign -> Option A
  4. Quick Check:

    Use = not : for default [OK]
Hint: Use = for default, not colon : [OK]
Common Mistakes:
  • Using colon instead of equals for default
  • Removing quotes from variable name
  • Thinking default must be numeric
5. You want to create a variable availability_zones with a default list of zones ["us-east-1a", "us-east-1b"]. Which is the correct way to declare it in Terraform?
hard
A. variable "availability_zones" { default = "us-east-1a, us-east-1b" }
B. variable availability_zones = ["us-east-1a", "us-east-1b"]
C. variable "availability_zones" { type = list(string) default = ["us-east-1a", "us-east-1b"] }
D. variable "availability_zones" { type = string default = ["us-east-1a", "us-east-1b"] }

Solution

  1. Step 1: Define variable with correct type for list of strings

    Use type = list(string) to specify a list of strings.
  2. Step 2: Assign default as a list of strings

    Set default = ["us-east-1a", "us-east-1b"] inside the variable block.
  3. Final Answer:

    variable "availability_zones" { type = list(string) default = ["us-east-1a", "us-east-1b"] } -> Option C
  4. Quick Check:

    List type with list default [OK]
Hint: Use type list(string) and default list [OK]
Common Mistakes:
  • Omitting type for list variables
  • Assigning list to string type
  • Using string with commas instead of list