5

我正在阅读 API Docs,但不清楚BaseOperator.xcom_pull的上下文参数是什么。

我以为会是dag.default_args,但我收到了KeyError: 'ti'

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

4

1 回答 1

11

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

默认上下文在任务实例运行时生成,并在此处定义。

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

所以这就是为什么要让它工作,你需要**kwargs在你的 python 可调用的标题中定义,并将操作符的provide_contextarg 设置为True.

我不确定如何直接获取上下文引用。

于 2017-07-11T23:09:26.497 回答