🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónHCL, variables, locales y expresiones
5 tareas · 40 min · Principiante
En HCL, el lenguaje de Terraform y OpenTofu, el valor que importa casi nunca está escrito en un solo sitio: lo decide la variable, la fuente que la asigna y la expresión que lo calcula. Con los archivos de infraestructura de Alambique Logística aprendes a recorrer ese camino a mano, a ver cuál fuente gana y qué rama de una condicional se toma de verdad. Todo es lectura de archivos de ejemplo; la consola no ejecuta nada.
Objetivo de la sala
En HCL, el lenguaje de Terraform y OpenTofu, el valor que importa casi nunca está escrito en un solo sitio: lo decide la variable, la fuente que la asigna y la expresión que lo calcula. Con los archivos de infraestructura de Alambique Logística aprendes a recorrer ese camino a mano, a ver cuál fuente gana y qué rama de una condicional se toma de verdad. Todo es lectura de archivos de ejemplo; la consola no ejecuta nada.Una variable de entrada (variable) es un parámetro del módulo: su valor llega desde fuera, y si no llega se usa su default. Un valor local (locals) es un nombre para una expresión calculada dentro del módulo, a partir de variables y de otros valores; no se asigna desde fuera. Una salida (output) expone un valor hacia quien llama al módulo.
Esa diferencia dice dónde mirar. Para saber por qué un recurso tiene cierto valor se sigue el hilo hacia atrás: el atributo del recurso, el local que lo calcula, la variable que alimenta el local y la fuente que dio valor a esa variable.
Responde para continuar
¿Cuál describe mejor la diferencia entre una variable y un valor local?
Ver pista de ayuda
Piensa en quién da el valor en cada caso.
Una misma variable puede recibir valor de varias fuentes a la vez. La documentación de Terraform fija el orden, de menor a mayor precedencia: el default del bloque de la variable, las variables de entorno TF_VAR_nombre, el archivo terraform.tfvars, el archivo terraform.tfvars.json, los archivos *.auto.tfvars en orden léxico y, por último, las opciones -var y -var-file de la línea de comandos.
Es decir, el valor que se lee en variables.tf casi nunca es el definitivo. Reúne los valores de replicas que hay en la carpeta y en el entorno del trabajo de CI, y aplica el orden.
Responde para continuar
¿Qué valor efectivo toma la variable replicas con los archivos y el entorno del lab?
Ver pista de ayuda
Hay un valor por defecto, uno de entorno, uno en terraform.tfvars y uno en un archivo auto.
Para saber quién puede llegar a un servicio no basta con leer el recurso: su atributo apunta a un local, y el local a una variable. Leer en ese orden es lo que un auditor hace para responder a «¿de dónde sale esto?».
Abre main.tf y mira de dónde sale el atributo entrada_desde.
Responde para continuar
Escribe el nombre del valor local que main.tf usa en el atributo entrada_desde.
Ver pista de ayuda
El atributo empieza por local. y luego el nombre.
Una variable de tipo texto acepta cualquier texto, incluido uno con una errata. Si una expresión compara con un valor exacto, un valor mal escrito simplemente cae en la rama contraria y nada falla. La defensa es validar la entrada: un bloque validation dentro de la variable, con una condición y un mensaje, hace que el plan se detenga si el valor no está entre los permitidos.
Es el equivalente en HCL de lo que el esquema hace en JSON: poner por escrito qué valores son legítimos.
Responde para continuar
¿Qué cambio impide que un entorno mal escrito siga adelante sin aviso?
Ver pista de ayuda
El problema es que el valor llega mal, no que se vea.
La expresión condicional condición ? valor_si : valor_no se evalúa con los valores efectivos, no con los que uno supone. Si la condición compara con un literal y el valor efectivo tiene otra forma, el resultado cae en la rama de «no» aunque el nombre del archivo, o la intención, sugiera lo contrario.
Calcula el valor efectivo de entorno, aplica la condición de locales.tf y escribe el resultado.
Responde para continuar
¿Qué valor toma el local retencion_dias con los valores efectivos del lab?
Ver pista de ayuda
Averigua primero qué texto exacto tiene entorno y compáralo con el literal de la condición.
Whoami-Labs Pro
Whoami-Labs Pro utiliza cookies
Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.