Я пытаюсь вытащить xcom из подчиненного тега, но не могу себе позволить, поскольку он выдает KeyError в kwargs['ti']
import airflow
from airflow import DAG
from airflow.operators.python_operator import PythonOperator
from airflow.operators.subdag_operator import SubDagOperator
args = {
'owner': 'airflow',
'start_date': airflow.utils.dates.days_ago(2),
'provide_context': True,
}
dag = DAG('example_xcom', schedule_interval="@once", default_args=args)
value_1 = [1, 2, 3]
value_2 = {'a': 'b'}
def push_by_returning(**kwargs):
"""Pushes an XCom without a specific target, just by returning it"""
return value_2
def puller(**kwargs):
ti = kwargs['ti']
# get value_2
v2 = ti.xcom_pull(task_ids='push_by_returning')
assert v2 == value_2
dag_subdag = DAG(
dag_id='%s.%s' % ('example_xcom', 'puller'),
default_args=args,
schedule_interval='@once',
)
start = DummyOperator(
task_id='start',
default_args=args,
dag=dag_subdag,
)
end = DummyOperator(
task_id='end',
default_args=args,
dag=dag_subdag,
)
start >> end
push = PythonOperator(
task_id='push_by_returning',
dag=dag,
python_callable=push_by_returning,
)
pull = SubDagOperator(
task_id='puller',
subdag=puller(),
default_args=args,
dag=dag,
)
push >> pull
Можно ли извлечь из SubDagOperator?Благодарю.Я уже попробовал kwargs ['task_instance'], но все еще не могу себе позволить.