Terraform Lists

Inputs

# variable.tf

variable "simplelist"{
    type = list(string)
}
# variables.tfvars

simplelist = [ "item1", "item2", "item3" ]

1. Raw Output.

# main.tf

output "a_listvariable_0" {
  value = var.simplelist
}

# console$

a_listvariable_0 = tolist([
  "item1",
  "item2",
  "item3",
])

2. Array Output.

# main.tf

output "a_listvariable_1" {
  value = [ for v in var.simplelist : v ]
}
# console$

a_listvariable_1 = [
  "item1",
  "item2",
  "item3",
]

3. Array Output. Selecting a specific indexed element.

# main.tf

output "a_listvariable_1" {
  value = [ for v in var.simplelist : v ][0]
}
# console$

a_listvariable_2 = "item1"

4. Array Output. Selecting a specific indexed element.

# main.tf

output "a_listvariable_3" {
  value = var.simplelist[0]
}
# console$

a_listvariable_3 = "item1"

5. Array Output. Iterating over list.

# main.tf

output "a_listvariable_4" {
  value = [ for i,v in var.simplelist : "Item ${i} is ${v}" ]
}
# console$

a_listvariable_4 = [
  "Item 0 is item1",
  "Item 1 is item2",
  "Item 2 is item3",
]

6. Map Output. Iterating over list.

# main.tf

output "a_listvariable_5" {
  value = { for i,v in var.simplelist : i => v}
}
# console$

a_listvariable_5 = {
  "0" = "item1"
  "1" = "item2"
  "2" = "item3"
}

7. Map Output. Selecting specific index element.

# main.tf

output "a_listvariable_6" {
  value = { for i,v in var.simplelist : i => v}[0]
}
# console$

a_listvariable_6 = "item1"

8. Map Output. Selecting specific map item.

# main.tf

output "a_listvariable_7" {
  value = { for v in var.simplelist : v => v}["item1"]
}
# console$

a_listvariable_7 = "item1"