Skip to content

XComs, variables y conexiones

Airflow necesita pasar metadatos entre tareas y guardar configuracion. Para eso existen XComs, Variables y Connections.

XComs

XCom permite pasar pequenos valores entre tareas.

python
@task
def extract():
    return {"file": "sales_2026_06_26.csv"}

@task
def load(payload):
    print(payload["file"])

No uses XCom para datasets grandes.

Que guardar en XCom

Adecuado:

  • Ruta de archivo.
  • Conteo de filas.
  • Estado pequeno.
  • ID de job externo.

No adecuado:

  • DataFrames grandes.
  • CSV completo.
  • Payloads masivos.

Variables

Variables guardan configuracion simple.

python
from airflow.models import Variable

bucket = Variable.get("sales_bucket")

Evita llenar DAGs de Variable.get en tiempo de parseo si afecta rendimiento.

Connections

Connections guardan credenciales y endpoints.

python
conn_id="postgres_warehouse"

Los operadores usan conn_id para recuperar host, usuario, password y extras.

Secret backends

En produccion, integra secretos con:

  • AWS Secrets Manager.
  • HashiCorp Vault.
  • GCP Secret Manager.
  • Azure Key Vault.

Parametros

Puedes parametrizar ejecuciones:

python
@dag(params={"full_refresh": False})
def pipeline():
    ...

Buenas practicas

  • XCom solo para metadatos pequenos.
  • Connections para credenciales.
  • Secret backend para produccion.
  • Variables para configuracion no sensible.
  • Evita secretos en codigo.
  • Documenta variables requeridas por DAG.