Implementar una regla de activación (Trigger Rule)
Después de crear un flujo de trabajo, te das cuenta de que el Dag se beneficiaría de ofrecer algunas actualizaciones cuando falle al menos una tarea. Decides implementar una tarea que aplique la comprobación de one failed en tu Dag para avisarte si cualquier tarea del Dag falla.
Todas las demás tareas ya están definidas y los objetos task y dag ya se han importado por ti.
Este ejercicio forma parte del curso
Introducción a Apache Airflow en Python
Instrucciones del ejercicio
- Importa la librería adecuada para usar reglas de activación (trigger rules).
- Añade el atributo de regla de activación correspondiente a la tarea
notify_on_failure. - Configura el atributo para que la tarea se active cuando una o más tareas upstream fallen.
- Define
notify_on_failurecomo dependencia downstream de las dos tareas de transformación.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Import TriggerRule
from airflow.utils.____ import ____
@dag(schedule="@daily", start_date=datetime(2026, 5, 1))
def etl_pipeline():
# Trigger notify_on_failure when any upstream task fails
@task(____=TriggerRule.____)
def notify_on_failure(**context) -> None:
dag_id = context["dag"].dag_id
run_id = context["run_id"]
print(f"ALERT: A task failed in DAG '{dag_id}', run '{run_id}'. Sending notification...")
# Set notify_on_failure downstream of both transform tasks
[transform_users(), transform_orders()] ____ notify_on_failure()
etl_pipeline()