Laboratorio 6: Parametrización Avanzada (Dinamismo y Control de Nombres)
Autor: Eduardo Martínez Agrelo
Bienvenidos al sexto laboratorio del curso de Terraform. En este módulo práctico, aprenderemos a dinamizar nuestro código. Utilizaremos variables estructuradas complejas, valores locales internos e interpolación en Google Cloud para eliminar duplicaciones y estructurar la infraestructura.
Variables de Entrada versus Valores Locales (Locals)
El diseño profesional de plantillas de infraestructura requiere separar los parámetros que el usuario puede configurar de aquellos valores calculados que deben mantenerse estables y centralizados dentro del código para evitar errores de escritura:
- Variables de Entrada: Definen la interfaz configurable del proyecto, aceptando tipos complejos como mapas de objetos para declarar subredes de forma flexible.
- Valores Locales (Locals): Actúan como constantes de cálculo interno que permiten aplicar reglas de nomenclatura estandarizadas de forma segura.
Interpolación Dinámica y Creación de Recursos con Bucles
Para evitar tener que repetir el bloque de código de una subred por cada sección que necesitemos en nuestra VPC, utilizaremos variables estructuradas junto con iteraciones lógicas:
for_each = var.subnets (each.key / each.value)
Esta directiva de Terraform recorre un mapa de objetos para generar las subredes de forma automatizada. Al delegar la creación de red al bucle, podemos añadir nuevos tramos modificando únicamente el valor de la variable de entrada.
Centralización de Metadatos y Estándares de Etiquetado
Para auditar de forma adecuada el consumo de los recursos en la nube, es una práctica recomendada aplicar etiquetas de metadatos. No utilizaremos valores sueltos; centralizaremos un mapa común en Terraform para heredar etiquetas de forma masiva en nuestros recursos compatibles:
- common_labels: Almacenará un mapa de etiquetas como el entorno y el dueño para aplicarlo directamente en Cloud Storage y otros servicios de GCP.
- labeled_bucket: Implementará un bucket de prueba que heredará el mapa de locals para validar el correcto etiquetado del recurso.
El Bucle de Salida en los Outputs
En este laboratorio, aprenderás a filtrar la información de despliegue mediante un bucle de transformación.
Escribiremos un bucle iterativo en el archivo outputs.tf para procesar las subredes creadas y
generar un reporte JSON detallado de los direccionamientos.
Conclusión: Infraestructura dinámica e inteligente
Has completado el laboratorio de parametrización avanzada. Has aprendido que el diseño modular consiste en combinar variables externas, cálculos internos con locals y bucles iterativos para automatizar despliegues limpios y legibles. Ya tienes las bases de la flexibilidad listas en Google Cloud; el siguiente paso es avanzar al Laboratorio 7 para encapsular estos recursos dentro de tus propios módulos.