Terraform Merge
Input
# local.tf
test2 = [
{
"peering_connection_id" = "pcx-987654321"
"subnets" = [
"192.168.11.0/24",
"192.168.12.0/24",
"192.168.13.0/24",
"192.168.14.0/24",
]
},
{
"peering_connection_id" = "pcx-123456789"
"subnets" = [
"192.168.1.0/24",
"192.168.2.0/24",
"192.168.3.0/24",
"192.168.4.0/24",
]
},
]
1. No Merge
# main.tf
output "c_simplemapvariable_7" {
value = [
for i in local.test2: {
for sn in i.subnets: format("%s_%s", i.peering_connection_id, sn) => {
connection_id = i.peering_connection_id
subnet = sn
}
}
]
}
c_simplemapvariable_7 = [
{
"pcx-987654321_192.168.11.0/24" = {
"connection_id" = "pcx-987654321"
"subnet" = "192.168.11.0/24"
}
"pcx-987654321_192.168.12.0/24" = {
"connection_id" = "pcx-987654321"
"subnet" = "192.168.12.0/24"
}
"pcx-987654321_192.168.13.0/24" = {
"connection_id" = "pcx-987654321"
"subnet" = "192.168.13.0/24"
}
"pcx-987654321_192.168.14.0/24" = {
"connection_id" = "pcx-987654321"
"subnet" = "192.168.14.0/24"
}
},
{
"pcx-123456789_192.168.1.0/24" = {
"connection_id" = "pcx-123456789"
"subnet" = "192.168.1.0/24"
}
"pcx-123456789_192.168.2.0/24" = {
"connection_id" = "pcx-123456789"
"subnet" = "192.168.2.0/24"
}
"pcx-123456789_192.168.3.0/24" = {
"connection_id" = "pcx-123456789"
"subnet" = "192.168.3.0/24"
}
"pcx-123456789_192.168.4.0/24" = {
"connection_id" = "pcx-123456789"
"subnet" = "192.168.4.0/24"
}
},
]
2. With Merge
# main.tf
output "c_simplemapvariable_7" {
value = merge([
for i in local.test2: {
for sn in i.subnets: format("%s_%s", i.peering_connection_id, sn) => {
connection_id = i.peering_connection_id
subnet = sn
}
}
]...)
}
c_simplemapvariable_8 = {
"pcx-123456789_192.168.1.0/24" = {
"connection_id" = "pcx-123456789"
"subnet" = "192.168.1.0/24"
}
"pcx-123456789_192.168.2.0/24" = {
"connection_id" = "pcx-123456789"
"subnet" = "192.168.2.0/24"
}
"pcx-123456789_192.168.3.0/24" = {
"connection_id" = "pcx-123456789"
"subnet" = "192.168.3.0/24"
}
"pcx-123456789_192.168.4.0/24" = {
"connection_id" = "pcx-123456789"
"subnet" = "192.168.4.0/24"
}
"pcx-987654321_192.168.11.0/24" = {
"connection_id" = "pcx-987654321"
"subnet" = "192.168.11.0/24"
}
"pcx-987654321_192.168.12.0/24" = {
"connection_id" = "pcx-987654321"
"subnet" = "192.168.12.0/24"
}
"pcx-987654321_192.168.13.0/24" = {
"connection_id" = "pcx-987654321"
"subnet" = "192.168.13.0/24"
}
"pcx-987654321_192.168.14.0/24" = {
"connection_id" = "pcx-987654321"
"subnet" = "192.168.14.0/24"
}
}