BaseOperator.xcom_pull中的上下文参数是什么

时间:2016-10-03 15:22:42

标签: python airflow

我正在阅读API文档,并且不清楚上下文BaseOperator.xcom_pull的论点是什么。

我认为它会是 dag.default_args ,但我会收到KeyError: 'ti'

我在push()示例here之后的先前任务中执行了xcom_push。

1 个答案:

答案 0 :(得分:4)

上下文是一组关键字参数,包含与任务实例相关的参考对象,例如dagdag_runrun_idexecution_date等。(包括任务实例ti本身。)

默认上下文是在任务实例运行时生成的,并且已定义为here

在您提到的示例中,传入上下文的方式并不是非常明显:如果provide_context arg设置为True,Airflow会将生成的上下文传递给python callable。然后,您可以通过调用kwargs['ti'].xcom_pull()来访问任务实例的xcom_pull方法。

这就是为什么要这样做,你需要在python callable的头文件中定义**kwargs,并将操作符的provide_context arg设置为True

我不知道如何直接获取上下文引用。