Saltar al contenido

Lección 3 de 20 · Lectura y práctica

Configuración de Conexiones y Variables en la Interfaz Web

Tipo de lección: VideoConcepto claveEn Apache Airflow, las conexiones y variables son mecanismos fundamentales para gestionar credenciales y configuraciones de manera segura y centralizada. Las conexiones almacenan información de.

Del concepto a la práctica

Taller de esta lección

Las conexiones representan cómo llegar a un sistema; las variables representan valores de configuración que pueden cambiar entre ejecuciones. Esta separación permite rotar credenciales o cambiar una ruta sin editar el DAG. El nombre del identificador también es parte del contrato: si dos tareas usan nombres distintos para el mismo destino, la configuración se vuelve ambigua.

Ejemplo resuelto

Una conexión local puede llamarse warehouse_dev y apuntar a una base de desarrollo. Una variable ventas_ruta_entrada puede contener /opt/airflow/data/ventas. El DAG solicita ambos identificadores; nunca imprime la contraseña ni construye una cadena sensible en el código.

Pruébalo

  1. Define una conexión de desarrollo con un identificador estable.

  2. Crea una variable pequeña para la ruta de entrada.

  3. Lee ambos valores desde una tarea y registra solo el identificador y la ruta.

  4. Cambia la ruta en la interfaz y repite la tarea.

Error frecuente: almacenar un JSON enorme en una variable. Corrígelo guardando solo configuración pequeña y colocando datos complejos en un archivo controlado.

Ejercicio: cambia la ruta de entrada_a a entrada_b sin editar el DAG.

Comprueba tu resultado

la siguiente ejecución registra entrada_b y no contiene ningún secreto.

Grafo acíclico con extracción, validación, transformación, carga y publicación, incluyendo dos dependencias de entrada.
CursaloMapa de práctica
Dependencias antes que horarios

Un DAG expresa dependencias entre tareas, sin ciclos. Una transformación puede esperar a varias entradas y la publicación debe esperar a que la carga esté lista. El orden depende de los datos necesarios, no solo de una hora del reloj.

Ver la infografía en tamaño completo ↗

Tipo de lección: Video

Concepto clave

En Apache Airflow, las conexiones y variables son mecanismos fundamentales para gestionar credenciales y configuraciones de manera segura y centralizada. Las conexiones almacenan información de autenticación para sistemas externos como bases de datos, APIs o servicios en la nube, mientras que las variables permiten almacenar valores configurables que pueden ser reutilizados en multiples DAGs.

Imagina que estás construyendo una red de tuberías en una planta industrial. Las conexiones serían los puntos de union estandarizados donde conectas tuberías a diferentes tanques de almacenamiento (bases de datos), mientras que las variables serían los controles de presion y temperatura que puedes ajustar desde una sala de control central. Esta separacion permite cambiar credenciales o parametros sin modificar el codigo de los DAGs, facilitando mantenimiento y seguridad.

Como funciona en la practica

La interfaz web de Airflow proporciona una forma visual para configurar conexiones y variables. Para crear una conexion:

  1. Accede a la pestaña Admin > Connections
  2. Haz clic en el boton + para agregar una nueva conexion
  3. Selecciona el tipo de conexion (ej: PostgreSQL, AWS, HTTP)
  4. Completa los campos requeridos como host, puerto, usuario y contraseña
  5. Guarda la conexion con un identificador unico

Para crear una variable:

  1. Accede a la pestaña Admin > Variables
  2. Haz clic en el boton + para agregar una nueva variable
  3. Define una clave y un valor (puede ser JSON, texto o numeros)
  4. Guarda la variable para que este disponible en todos los DAGs

En un DAG, puedes acceder a estos recursos usando:

from airflow.models import Variable
from airflow.hooks.base import BaseHook

# Acceder a una variable
limite_registros = Variable.get('limite_extraccion', default_var=1000)

# Obtener una conexion
conn = BaseHook.get_connection('mi_postgres')
host = conn.host
usuario = conn.login

Caso de estudio

Considera un pipeline ETL que extrae datos de una API de ventas, los transforma y los carga en una base de datos analitica. En lugar de codificar credenciales directamente en el DAG:

ComponenteConexion/VariableConfiguracion
API de ventasConexion: api_ventasTipo: HTTP, Host: api.empresa.com, Token: ***
Data WarehouseConexion: dw_postgresTipo: Postgres, Host: dw.internal, DB: analytics
Limite de extraccionVariable: limite_diarioValor: 50000
Zona horariaVariable: zona_horariaValor: America/Mexico_City

Este enfoque permite que el mismo DAG funcione en diferentes entornos (desarrollo, produccion) simplemente cambiando las conexiones y variables, sin modificar el codigo del pipeline.

Las conexiones en Airflow cifran las contraseñas por defecto, pero para entornos de produccion se recomienda usar sistemas externos como HashiCorp Vault o AWS Secrets Manager integrados mediante backends de conexiones personalizados.

Errores comunes

  • Usar credenciales hardcodeadas en DAGs: Expone informacion sensible y dificulta la rotacion de credenciales. Solucion: Siempre usar conexiones.
  • Nombres inconsistentes de conexiones: Diferentes DAGs usando nombres distintos para la misma conexion causa duplicacion. Solucion: Establecer un estandar de nomenclatura en el equipo.
  • Variables demasiado grandes o complejas: Almacenar JSONs muy extensos como variables puede afectar rendimiento. Solucion: Para configuraciones complejas, considerar archivos de configuracion externos.
  • No probar conexiones: Asumir que una conexion configurada funciona sin validacion. Solucion: Usar el boton Test en la interfaz o crear tareas de prueba en DAGs.
  • Permisos excesivos en la interfaz web: Permitir que muchos usuarios modifiquen conexiones de produccion. Solucion: Implementar RBAC y flujos de aprobacion.

Checklist de dominio

  1. Puedo crear y configurar una conexion a PostgreSQL desde la interfaz web de Airflow
  2. Se como acceder a variables y conexiones desde codigo Python en un DAG
  3. Comprendo la diferencia entre conexiones (credenciales) y variables (configuracion)
  4. Puedo explicar por que no se deben hardcodear credenciales en DAGs
  5. Se como estructurar variables para diferentes entornos (dev/staging/prod)
  6. Puedo identificar cuando usar una variable vs un parametro de DAG
  7. Comprendo las implicaciones de seguridad al gestionar conexiones

Configuracion de un pipeline ETL con conexiones y variables

En este ejercicio, configuraras las conexiones y variables necesarias para un pipeline ETL que procesa datos de ventas. Sigue estos pasos:

  1. Accede a la interfaz web de tu instancia de Airflow (generalmente en http://localhost:8080)
  2. Crea una conexion llamada ventas_api con estos parametros:
    • Tipo: HTTP
    • Host: https://api.ejemplo-ventas.com
    • Extra: {"headers": {"Authorization": "Bearer TU_TOKEN_AQUI"}}
  3. Crea una conexion llamada warehouse_db para PostgreSQL:
    • Tipo: Postgres
    • Host: localhost
    • Schema: ventas_analytics
    • Usuario: airflow_user
    • Contraseña: seguro123
    • Puerto: 5432
  4. Crea tres variables:
    • limite_extraccion_diaria con valor 10000
    • pais_filtro con valor MX
    • config_transformacion con valor JSON: {"formato_fecha": "YYYY-MM-DD", "moneda": "MXN"}
  5. Verifica que las conexiones esten activas usando el boton Test en la interfaz
  6. Crea un archivo DAG de prueba que:
    • Acceda a la variable limite_extraccion_diaria
    • Obtenga los detalles de la conexion warehouse_db
    • Imprima estos valores en los logs
Pistas
  • Recuerda que el campo Extra en conexiones HTTP acepta JSON para headers y parametros adicionales
  • Para acceder a variables en un DAG, importa from airflow.models import Variable
  • Puedes verificar que las variables se esten cargando correctamente imprimiendolas con logging.info()

Evalua tu comprension

Completa el quiz interactivo de arriba para ganar XP.

Sigue con Apache Airflow: Construcción de Pipelines ETL Automatizados con DAGs

Esta lección forma parte de un curso de Cursalo. Revisa su programa y elige entre la compra individual o el acceso a toda la escuela.

Si ya tenías acceso a este curso, entra con tu cuenta: tus derechos y tu progreso se conservan. No necesitas comprarlo de nuevo.

01 / ELEGIR UNA RUTA

El próximo paso

Aprende IA mientras construyes algo que sí necesitas.

Empieza por el curso inicial o explora el catálogo para encontrar una práctica alineada con tu trabajo.