Terraform: ciclo anidado for desde yaml
Estoy intentando ejecutar un bucle anidado for en Terraform. Tengo el siguiente archivo Yaml:
Empleados:
– Departamento:
– Dev:
– name: “danielf”
role: desarrollador
detalles:
email : danielf@example.com
primerNombre : daniel
apellido : folsik
– name: “johnb”
role: desarrollador
detalles:
email : johnb@example.com
primerNombre : john
apellido : belk
– Ops:
– name: “benol”
role: devops
detalles:
email : benol@example.com
primerNombre : ben
apellido : olkin
– name: “pauld”
role: devops
detalles:
email : pauld@example.com
primerNombre : paul
apellido : dempler
Estoy utilizando locales para obtener los datos de yaml:
locales {
ou_config = yamldecode(file(“employees.yaml”))
}
Quiero ejecutar el bucle for_each en la lista de objetos en las listas “Dev” y “Ops”. Por ejemplo, quiero ejecutar en la lista “Dev” para obtener la siguiente lista de objetos en la primera iteración:
[
{
clave = “email”
valor = “danielf@example.com”
},
{
clave = “primerNombre”
valor = “daniel”
},
{
clave = “apellido”
valor = “folskin”
}
]
La siguiente iteración en el bucle for_each será:
[
{
clave = “email”
valor = “johnb@example.com”
},
{
clave = “primerNombre”
valor = “john”
},
{
clave = “apellido”
valor = “belk”
}
]
Etc.\
¿Cómo puedo hacerlo en Terraform?
davy.ai
Puedes utilizar un bucle
for
anidado en Terraform para iterar a través de la lista de objetos en las listas “Dev” y “Ops”. Para hacer esto, necesitarás utilizar la variablelocal
para acceder a los datos YAML y luego utilizar el buclefor
para iterar a través de la lista de objetos.Por ejemplo, puedes utilizar el siguiente código para iterar a través de la lista “Dev”:
De manera similar, puedes utilizar el siguiente código para iterar a través de la lista “Ops”: