繁体   English   中英

Airflow SimpleHttpOperator 未推送到 xcom

[英]Airflow SimpleHttpOperator is not pushing to xcom

我的 dag 中有以下 SimpleHttpOperator:

extracting_user = SimpleHttpOperator(
        task_id='extracting_user',
        http_conn_id='user_api',
        endpoint='api/', # Some Api already configured and checked
        method="GET",
        response_filter=lambda response: json.loads(response.text),
        log_response=True,
        do_xcom_push=True,
    )

接着是 PythonOperator:

processing_user = PythonOperator(
        task_id='processing_user',
        python_callable=_processing_user
    )

function:

def _processing_user(ti):
    users = ti.xcom_pull(task_ids=['extracting_user'])
    if not len(users) or 'results' not in users[0]:
        raise ValueError(f'User is empty')

    **More function code**

当我执行airflow tasks test myDag extracting_user 2022-03-02然后执行 airflow tasks airflow tasks test myDag processing_user 2022-03-02 ,我得到值错误,用户变量等于一个空数组。

我已经单独测试了 extracting_user 任务,它从 API 获取了所需的数据。我已经使用 sqlite xcom 进行了查询,它是一个空表。

我正在使用 airflow 2.3.0

我解决了更改为气流版本 2.0.0 的问题。 似乎 SimpleHttpOperator 没有在 2.3.0 版本的 xcom 表上存储请求响应

SimpleHttpOperator 确实返回 XCOM。 但是,命令 airflow 任务测试不再创建 XComs,当

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM