top of page

Condicionales y Loops en Terraform: Hacks que deberías conocer

  • victoriagimenez5
  • 31 jul
  • 2 Min. de lectura

ree

¿Alguna vez te encontraste escribiendo Terraform y de repente tuviste que crear múltiples recursos dinámicamente o en base a una condición… sin saber cómo hacerlo? Este TeraTip trae respuestas a esas preguntas. ¡Vamos al grano!



Condicionales

Nuestra primera misión es aprender cómo crear un recurso en Terraform de forma condicional. Supongamos que quieres crear un Auto Scaling Group de forma condicional basándote en una variable (por ejemplo, si el ASG está habilitado o si el entorno es de producción, etc). Para esto, podemos usar el operador ternario disponible en Terraform.

El operador ternario se ve así:


condition ? this if the condition is true : this if the condition is false

Con esta expresión podemos definir atributos condicionalmente o incluso crear recursos solo si se cumple una condición. ¿Cómo se usa para crear un recurso condicionalmente? Observa este ejemplo:

""

Como ves, usamos el atributo especial count para definir cuántas veces se crea el recurso. Si la variable asg_is_enabled (de tipo booleano) es true, se crea el recurso; si es false, no se crea.

Mira la línea 6, donde también usamos condicionales para asignar dinámicamente atributos dentro del recurso.



El meta-argumento for_each de Terraform

En proyectos grandes solemos crear muchos recursos con Terraform, y muchos de ellos son instancias del mismo recurso pero con distintas configuraciones. Una forma de hacerlo es duplicando bloques de código con nombres diferentes, pero esto reduce la mantenibilidad del código y lo hace más propenso a errores (como olvidar actualizar todos los bloques).


Para eso, Terraform nos ofrece el atributo for_each. Este permite crear múltiples recursos de forma dinámica, usando como base una variable que define sus configuraciones. Veamos un ejemplo:


""

Aquí estamos creando 3 instancias, cada una con su configuración específica. El tamaño del código se mantiene constante, sin importar si creamos 3 o 10 instancias. Solo necesitamos agregar más objetos a la variable var.instances.

Este es un ejemplo de cómo puede verse esa variable:


""

¿Quieres agregar una nueva instancia? Solo añade otro objeto en la lista y Terraform se encargará del resto 😉



Conclusión

¡Esperamos que este TeraTip te haya sido útil! Mantente atento para más trucos de Terraform que te harán la vida más fácil.


""



Juan Wiggenhauser

Cloud Engineer

Teracloud






 
 
bottom of page