在Airflow中,如何获取父任务、任务id?

在Airflow中,如何获取父任务、任务id?,airflow,apache-airflow-xcom,Airflow,Apache Airflow Xcom,我有一个分支任务,它依赖于它的直接上游设置的XCOM。上游任务id通过诸如task_1、task_2..task_n之类的循环生成。 比如说: task_n >> branch[task_a, task_b] def branch_callable(task_instance, task, **kwargs): upstream_ids = task.upstream_task_ids # an iterable xcoms = task_instance.xco

我有一个分支任务,它依赖于它的直接上游设置的XCOM。上游任务id通过诸如task_1、task_2..task_n之类的循环生成。
比如说:

task_n >> branch[task_a, task_b]
def branch_callable(task_instance, task, **kwargs):
    upstream_ids = task.upstream_task_ids  # an iterable
    xcoms = task_instance.xcom_pull(task_ids=upstream_ids)
    # process the xcoms of the direct upstream tasks

分支是否有办法访问其直接上游设置的XCOM?我知道我可以使用op_kwargs并将任务id传递给分支。我只是想看看是否有一种更自然的方法来实现它。

PythonBranchOperator应该使用
provide_context=True
创建,可调用的python可以如下所示:

task_n >> branch[task_a, task_b]
def branch_callable(task_instance, task, **kwargs):
    upstream_ids = task.upstream_task_ids  # an iterable
    xcoms = task_instance.xcom_pull(task_ids=upstream_ids)
    # process the xcoms of the direct upstream tasks

你的意思是
ask\u n>>branch>[task\u a,task\b]
?你想让
task\u a
task\u b
task\u n
中获取一个值,还是让
branch
task\u n
中获取一个值?要么让分支从task\u n获取值,要么让我需要“branch”来识别任务的任务id,因此,我可以检索task\n设置的XCOM。