0
0
Terraformcloud~20 mins

Conditional expressions (ternary) in Terraform - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Terraform Conditional Expressions Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
service_behavior
intermediate
2:00remaining
Terraform Conditional Expression Output
What will be the value of instance_type after applying this Terraform configuration snippet?
Terraform
variable "environment" {
  default = "production"
}

locals {
  instance_type = var.environment == "production" ? "t3.large" : "t3.micro"
}
A"t3.large"
B"t3.micro"
C"production"
Dnull
Attempts:
2 left
💡 Hint
Check the condition comparing the environment variable.
Configuration
intermediate
2:00remaining
Terraform Conditional Expression in Resource Count
Given the following Terraform resource snippet, how many instances of aws_instance will be created if var.deploy is false?
Terraform
variable "deploy" {
  default = false
}

resource "aws_instance" "example" {
  count = var.deploy ? 3 : 0
  ami           = "ami-123456"
  instance_type = "t2.micro"
}
A0
B1
C3
DError: count must be a positive integer
Attempts:
2 left
💡 Hint
Look at the count expression and the value of var.deploy.
Architecture
advanced
2:00remaining
Choosing Subnet Based on Environment Using Conditional Expression
In a Terraform module, you want to select a subnet ID based on the environment variable var.env. Which option correctly assigns subnet_id to "subnet-prod123" if var.env is "prod", and to "subnet-dev123" otherwise?
Asubnet_id = var.env ? "subnet-prod123" : "subnet-dev123"
Bsubnet_id = var.env == "prod" ? "subnet-dev123" : "subnet-prod123"
Csubnet_id = var.env == "prod" ? "subnet-prod123" : "subnet-dev123"
Dsubnet_id = var.env = "prod" ? "subnet-prod123" : "subnet-dev123"
Attempts:
2 left
💡 Hint
Check the equality operator and the order of values in the ternary expression.
security
advanced
2:00remaining
Conditional Expression for Enabling Encryption
You want to enable encryption on an AWS S3 bucket only if the variable var.enable_encryption is true. Which Terraform snippet correctly sets the server_side_encryption_configuration block conditionally?
Aserver_side_encryption_configuration = var.enable_encryption ? [] : [{ rule: { apply_server_side_encryption_by_default: { sse_algorithm: "AES256" } } }]
Bserver_side_encryption_configuration = var.enable_encryption ? [{ rule: { apply_server_side_encryption_by_default: { sse_algorithm: "AES256" } } }] : []
Cserver_side_encryption_configuration = var.enable_encryption == true ? [] : null
Dserver_side_encryption_configuration = var.enable_encryption ? null : [{ rule: { apply_server_side_encryption_by_default: { sse_algorithm: "AES256" } } }]
Attempts:
2 left
💡 Hint
Encryption block should be present only when enabled.
Best Practice
expert
2:00remaining
Complex Conditional Expression for Instance Count
Consider this Terraform variable and resource snippet. What is the value of count for aws_instance.example if var.env is "staging" and var.scale_up is true?
Terraform
variable "env" {
  default = "staging"
}

variable "scale_up" {
  default = true
}

resource "aws_instance" "example" {
  count = var.env == "production" ? 5 : (var.scale_up ? 3 : 1)
  ami           = "ami-abc123"
  instance_type = "t3.medium"
}
A0
B5
C1
D3
Attempts:
2 left
💡 Hint
Evaluate the nested conditional expression step by step.