0
0
Terraformcloud~10 mins

Null values handling in Terraform - Step-by-Step Execution

Choose your learning style9 modes available
Process Flow - Null values handling
Start
Check variable value
Use default or skip
Apply fallback
Use given value
Resource or output uses value
End
This flow shows how Terraform checks if a variable is null, then uses a default or fallback value if it is, otherwise it uses the given value.
Execution Sample
Terraform
variable "example" {
  type    = string
  default = null
}

output "result" {
  value = coalesce(var.example, "default_value")
}
This Terraform code defines a variable that can be null and outputs either its value or a default string if null.
Process Table
StepVariable 'example'ConditionActionOutput 'result'
1null (default)Is var.example null? YesUse fallback 'default_value'"default_value"
2set to 'hello'Is var.example null? NoUse var.example value"hello"
3set to '' (empty string)Is var.example null? NoUse var.example value"" (empty string)
4unset (no value)Is var.example null? YesUse fallback 'default_value'"default_value"
5End---
💡 Execution stops after output value is determined based on null check and fallback.
Status Tracker
Variable 'example'Start (default null)After 1 (null)After 2 ('hello')After 3 (empty string)After 4 (unset)Final
examplenullnull"hello"""nullvaries per step
Key Moments - 3 Insights
Why does an empty string ('') not trigger the fallback value?
Because Terraform treats empty string as a valid non-null value, so the condition 'is null?' is false and the actual value is used (see execution_table row 3).
What happens if the variable is not set at all?
Since default=null is provided, Terraform treats an unset variable as null, so the fallback value is used (see execution_table row 4).
How does the coalesce function help with null values?
Coalesce returns the first non-null argument, so it picks the variable value if not null, otherwise the fallback (see execution_table rows 1 and 2).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the output 'result' when 'example' is set to 'hello'?
A"hello"
B"default_value"
C"" (empty string)
Dnull
💡 Hint
Check execution_table row 2 where variable 'example' is 'hello'.
At which step does Terraform use the fallback value 'default_value'?
AStep 2
BStep 1 and Step 4
CStep 3
DStep 5
💡 Hint
Look at execution_table rows where condition 'Is var.example null? Yes' is true.
If the variable 'example' is set to an empty string, what will the output be?
A"default_value"
Bnull
C"" (empty string)
DError
💡 Hint
See execution_table row 3 and variable_tracker for empty string handling.
Concept Snapshot
Terraform null handling:
- Variables can be null or set.
- Use coalesce(var, fallback) to handle nulls.
- Null triggers fallback; empty string does not.
- Unset variables treated as null (with default=null).
- Outputs use first non-null value.
Full Transcript
This lesson shows how Terraform handles null values in variables. When a variable is null or unset, Terraform can use a fallback value with the coalesce function. If the variable has a real value, including an empty string, Terraform uses that value. The execution table traces different cases: default null, set to 'hello', empty string, and unset. Key moments clarify why empty strings do not trigger fallback and how unset variables behave. The visual quiz tests understanding of output values based on variable states. The concept snapshot summarizes the main points for quick reference.