Bird
Raised Fist0
Terraformcloud~20 mins

Default values in Terraform - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
🎖️
Default Values Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Configuration
intermediate
1:30remaining
What is the default value of the variable 'instance_type'?

Given this Terraform variable declaration, what is the default value of instance_type?

variable "instance_type" {
  type    = string
  default = "t2.micro"
}
A""
B"t2.micro"
Cnull
D"t3.medium"
Attempts:
2 left
💡 Hint

Look at the default attribute inside the variable block.

❓ service_behavior
intermediate
1:30remaining
What happens if a variable with no default is not provided?

Consider this Terraform variable declaration without a default value:

variable "region" {
  type = string
}

What happens if you run terraform apply without providing a value for region?

ATerraform prompts the user to input a value for 'region'.
BTerraform throws a syntax error and stops.
CTerraform automatically assigns the provider's default region.
DTerraform uses an empty string as the default value.
Attempts:
2 left
💡 Hint

Think about how Terraform handles required variables without defaults.

❓ Architecture
advanced
2:00remaining
How does default value affect module reuse?

You have a Terraform module with a variable environment that has a default value "dev". You want to reuse this module for production without changing the module code.

Which approach correctly overrides the default value when calling the module?

Terraform
<pre>module "app" {
  source = "./app_module"
  # How to override environment?
}</pre>
ARename the variable in the module to "prod".
BChange the default value inside the module variable to "prod".
CSet an environment variable named TF_VAR_environment to "prod" before running Terraform.
DAdd <code>environment = "prod"</code> inside the module block.
Attempts:
2 left
💡 Hint

Think about how to pass values to modules to override defaults.

❓ security
advanced
2:00remaining
What risk arises from default sensitive variable values?

A Terraform variable is declared as sensitive with a default value containing a password:

variable "db_password" {
  type      = string
  sensitive = true
  default   = "defaultPass123"
}

What is the main security risk of this setup?

AThe password will be encrypted automatically, so no risk exists.
BTerraform will ignore the sensitive flag and print the password always.
CThe default password may be exposed if the code is shared publicly.
DTerraform will fail to apply because sensitive variables cannot have defaults.
Attempts:
2 left
💡 Hint

Consider what happens if code with default secrets is stored in public repositories.

🧠 Conceptual
expert
2:00remaining
What is the output of this Terraform expression with default values?

Given the following Terraform locals and variables:

variable "count" {
  type    = number
  default = 3
}

locals {
  total = var.count + 2
}

What is the value of local.total if no value is provided for count?

A5
B3
C2
Dnull
Attempts:
2 left
💡 Hint

Remember how default values are used when no input is given.

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