Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

HCL, 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.

0 de 5 · 0%

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.

Inicia sesión para registrar tus puntos y progreso en el ranking.

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