es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , , ,

Answer

  1. Avatar for 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 variable local para acceder a los datos YAML y luego utilizar el bucle for 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”:

    locals {
      ou_config = yamldecode(file("employees.yaml"))
    }
    
    resource "null_resource" "dev_list" {
      for_each = local.ou_config.Employees.Department.Dev
    
      # Iterar a través de la lista de objetos en la lista "Dev"
      for key, value in each.value.details {
        # Hacer algo con la clave y el valor
      }
    }
    

    De manera similar, puedes utilizar el siguiente código para iterar a través de la lista “Ops”:

    locals {
      ou_config = yamldecode(file("employees.yaml"))
    }
    
    resource "null_resource" "ops_list" {
      for_each = local.ou_config.Employees.Department.Ops
    
      # Iterar a través de la lista de objetos en la lista "Ops"
      for key, value in each.value.details {
        # Hacer algo con la clave y el valor
      }
    }
    

Comments are closed.