我正在阅读API文档,并且不清楚上下文对BaseOperator.xcom_pull的论点是什么。
我认为它会是 dag.default_args ,但我会收到KeyError: 'ti'
我在push()示例here之后的先前任务中执行了xcom_push。
答案 0 :(得分:4)
上下文是一组关键字参数,包含与任务实例相关的参考对象,例如dag
,dag_run
,run_id
,execution_date
等。(包括任务实例ti
本身。)
默认上下文是在任务实例运行时生成的,并且已定义为here。
在您提到的示例中,传入上下文的方式并不是非常明显:如果provide_context
arg设置为True,Airflow会将生成的上下文传递给python callable。然后,您可以通过调用kwargs['ti'].xcom_pull()
来访问任务实例的xcom_pull方法。
这就是为什么要这样做,你需要在python callable的头文件中定义**kwargs
,并将操作符的provide_context
arg设置为True
。
我不知道如何直接获取上下文引用。