- Al construir infraestructura en la nube, conviene usar herramientas de IaC en lugar de hacerlo desde la consola web, considerando ahorro de costos, mayor velocidad de despliegue, consistencia, estabilidad y reutilización
- Terraform es de código abierto y es la herramienta de IaC más utilizada
- Para escribir código de Terraform de forma eficiente y efectiva, es importante usar adecuadamente las funciones que ofrece Terraform
- Bucles en Terraform
- Los lenguajes declarativos en general no tienen bucles, pero Terraform permite usarlos mediante diversas funciones
- Bucles más usados:
count, for_each
- Parámetro
count: repite recursos y módulos
- Expresión
for_each: repite recursos, bloques inline dentro de recursos y módulos
- Cómo usar cada bucle
count: útil cuando los recursos que se van a crear son casi idénticos y no cambian, ya que permite crearlos de forma rápida y concisa
for_each: útil para recursos con nombres únicos, con datos propios o que no deberían recrearse, ya que permite crearlos y modificarlos de forma segura
- Count
- El parámetro
count acepta enteros y repite recursos completos y módulos
- Si se configura con
count, se puede usar count.index para acceder al índice generado por count
- Limitaciones de Count
count repite el recurso completo, pero no los bloques inline dentro del recurso
- Si se elimina un valor intermedio entre recursos creados con
count, todos los valores posteriores se eliminan y se vuelven a crear. El resultado final será el mismo, pero puede causar problemas si se trata de recursos que no deberían recrearse
- For_each
- La expresión
for_each repite list, set y map para crear recursos completos, bloques inline dentro de recursos y módulos
- Si se configura con
for_each, se puede usar each.key y each.value para acceder a la clave y al valor correspondientes
- Al usar
for_each en recursos, las listas no están permitidas
- En
collection se define el set o map a iterar, y en Config se usa each.value para obtener las claves y valores definidos en Collection
Aún no hay comentarios.