KubernetesPodOperator xcom_push键/值不适用于带有xcom_pull的后续任务

时间:2020-07-01 08:26:37

标签: airflow airflow-operator apache-airflow-xcom

这是我正在尝试的KubernetesPodOperator的示例-

    set_tag = KubernetesPodOperator(
        namespace='default',
        task_id='set-tag',
        name='set-tag',
        image='ubuntu:18.04',
        xcom_push=True,
        cmds=["/bin/sh", "-c"],
        arguments=['''mkdir /airflow && 
                      mkdir /airflow/xcom && 
                      echo '{"test_key":"test_value"}' > /airflow/xcom/return.json 
        ''']
    )

在下一个下游PythonOperator中,我试图按以下方式获取此标签-

    def print_tag(**kwargs):
        ti = kwargs['ti']
        print(ti.xcom_pull(task_ids='set-tag', key='test_key'))


    get_tag = PythonOperator(
        task_id='get-tag',
        dag=dag,
        python_callable=print_tag,
        provide_context=True
    )

我正在使用“气流测试”首先运行任务“ set-tag”,然后运行“ get-tag”,希望看到打印的“ test_value”。但是打印的值显示为“无”。

非常感谢任何指针。

谢谢。

1 个答案:

答案 0 :(得分:0)

目前,用于xcom push的KubernetesPodOperator的参数名称为do_xcom_push,而不是xcom_push

Source code