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
Define una conexión de desarrollo con un identificador estable.
Crea una variable pequeña para la ruta de entrada.
Lee ambos valores desde una tarea y registra solo el identificador y la ruta.
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.

Mapa de prácticaUn 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:
- Accede a la pestaña Admin > Connections
- Haz clic en el boton + para agregar una nueva conexion
- Selecciona el tipo de conexion (ej: PostgreSQL, AWS, HTTP)
- Completa los campos requeridos como host, puerto, usuario y contraseña
- Guarda la conexion con un identificador unico
Para crear una variable:
- Accede a la pestaña Admin > Variables
- Haz clic en el boton + para agregar una nueva variable
- Define una clave y un valor (puede ser JSON, texto o numeros)
- 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.loginCaso 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:
| Componente | Conexion/Variable | Configuracion |
|---|---|---|
| API de ventas | Conexion: api_ventas | Tipo: HTTP, Host: api.empresa.com, Token: *** |
| Data Warehouse | Conexion: dw_postgres | Tipo: Postgres, Host: dw.internal, DB: analytics |
| Limite de extraccion | Variable: limite_diario | Valor: 50000 |
| Zona horaria | Variable: zona_horaria | Valor: 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
- Puedo crear y configurar una conexion a PostgreSQL desde la interfaz web de Airflow
- Se como acceder a variables y conexiones desde codigo Python en un DAG
- Comprendo la diferencia entre conexiones (credenciales) y variables (configuracion)
- Puedo explicar por que no se deben hardcodear credenciales en DAGs
- Se como estructurar variables para diferentes entornos (dev/staging/prod)
- Puedo identificar cuando usar una variable vs un parametro de DAG
- 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:
- Accede a la interfaz web de tu instancia de Airflow (generalmente en http://localhost:8080)
- Crea una conexion llamada ventas_api con estos parametros:
- Tipo: HTTP
- Host: https://api.ejemplo-ventas.com
- Extra: {"headers": {"Authorization": "Bearer TU_TOKEN_AQUI"}}
- Crea una conexion llamada warehouse_db para PostgreSQL:
- Tipo: Postgres
- Host: localhost
- Schema: ventas_analytics
- Usuario: airflow_user
- Contraseña: seguro123
- Puerto: 5432
- 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"}
- Verifica que las conexiones esten activas usando el boton Test en la interfaz
- 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.