✨ La razón por al cual es bash operator comparte su output es porque por defecto tiene el parametro do_xcom_push
en True
lo mismo podemos hacer con el python operator pero este pusheara lo que coloquemos en el return
de la función
Introducción a Apache Airflow
Introducción al curso
¿Para qué sirve airflow?
¿Por qué usar airflow?
Resumen módulo 1
Conceptos básicos
DAG
Tasks y Operators
Scheduler
Instalación y configuración
Instalación de Apache Airflow usando Docker
Posibles configuraciones
Variables y conexiones
Implementando un DAG
Implementando un DAG
Bash Operator
Python Operator
Definiendo dependencias entre tareas
Custom Operator
Orquestar y monitorizar procesos
Orquestando un DAG I
Orquestando un DAG II
Monitoring
Task Actions
Trigger Rules
Sensores
¿Qué son los sensores?
ExternalTaskSensor
FileSensor
Templates con Jinja
¿Qué son los templates con Jinja?
XComs
¿Qué son los Xcoms?
BranchPythonOperator
BranchPythonOperator
Proyecto
Definición del proyecto
Cierre del curso
Cierre del curso
Comparte tu proyecto de Platzi explora el espacio con Airflow y certifícate
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Eric Bellet
Aportes 4
Preguntas 1
✨ La razón por al cual es bash operator comparte su output es porque por defecto tiene el parametro do_xcom_push
en True
lo mismo podemos hacer con el python operator pero este pusheara lo que coloquemos en el return
de la función
from datetime import datetime
from airflow import DAG
from airflow.operators.bash import BashOperator
from airflow.operators.python import PythonOperator
from airflow.models.xcom import XCom
default_args = {"depends_on_past": True}
def myfunction(**context):
print(int(context["ti"].xcom_pull(task_ids='tarea_2')) - 24)
with DAG(dag_id="9-XCom",
description="Probando los XCom",
schedule_interval="@daily",
start_date=datetime(2022, 1, 1),
default_args=default_args,
max_active_runs=1
) as dag:
t1 = BashOperator(task_id="tarea_1",
bash_command="sleep 5 && echo $((3 * 8))")
t2 = BashOperator(task_id="tarea_2",
bash_command="sleep 3 && echo {{ ti.xcom_pull(task_ids='tarea_1') }}")
t3 = PythonOperator(task_id="tarea_3",
python_callable=myfunction)
t1 >> t2 >> t3
Un escenario de uso de Xcoms es retornar por ejm la cantidad de registros cargados a una base de datos que haría una tarea 1 y tomar esta cantidad para el envío de email de notificación desde una tarea 2
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?