Aqui está o meu problema: tenho um bloco de código local como o abaixo. Preciso criar um mapa a partir desses valores (eles são usados em vários lugares).
locals {
object = {
1 = {
name = "val1"
keys = ["val1"]
}
2 = {
name = "val2"
keys = ["val2", "val3", "val4"]
}
}
associations = flatten(
[
for obj in local.object : [
for association_key in obj.keys : {
"${obj.name}-${association_key}" = {
key = obj.name
association_key = association_key
}
}
]
]
)
}
Quando executo um plano do Terraform gerando o resultado acima, obtenho:
testing = [
+ {
+ val1-val1 = {
+ association_key = "val1"
+ key = "val1"
}
},
+ {
+ val2-val2 = {
+ association_key = "val2"
+ key = "val2"
}
},
+ {
+ val2-val3 = {
+ association_key = "val3"
+ key = "val2"
}
},
+ {
+ val2-val4 = {
+ association_key = "val4"
+ key = "val2"
}
},
]
O que preciso obter, no entanto, é algo como isto:
testing = [
+ val1-val1 = {
+ association_key = "val1"
+ key = "val1"
}
+ val2-val2 = {
+ association_key = "val2"
+ key = "val2"
}
+ val2-val3 = {
+ association_key = "val3"
+ key = "val2"
}
+ val2-val4 = {
+ association_key = "val4"
+ key = "val2"
}
]
O motivo para isso é que há muitas repetições no valor das chaves do objeto e é necessário que haja um valor exclusivo no mapa.
Tentei a solução Aqui , mas não consegui criar o mapa que preciso.