Cloud Composer / Airflow:只能在Operator之间设置关系;收到 PythonOperator

Cloud Composer / Airflow: Relationships can only be set between Operators; received PythonOperator

我们在 Cloud Composer 中有多个 Airflow DAG,之前运行良好。 DAG 和 Operators 的代码没有改变,但是在最近的部署之后,我们现在从 DAGs 得到这个错误:

Broken DAG: [...] Relationships can only be set between Operators; received PythonOperator

同样,该 DAG 数周未更改,之前工作正常。

PythonOperator里面有Airflow提供的PythonOperator,这样导入:

from airflow.operators.python_operator import PythonOperator

并像这样在 DAG 中使用:

OPERATOR_READ_HEADER = PythonOperator(
    task_id='read_header',
    params={'object_name': 'dependencies/MT940 Header.txt'},
    python_callable=read_object,
    provide_context=True
)

SENSOR_INPUT_FILE_PROVIDED >> OPERATOR_READ_HEADER

为什么会开始出现此错误?

这是 Google Cloud Composer 中的 Airflow 1.9.0-composer

composer-1.4.2 版本中引入了一个错误,我们现在已经修复了,尝试创建一个新的 Composer 环境,DAG 错误应该会消失。同时,我们还将在接下来的几天内自动在现有 1.4.2 环境中自动应用该修复程序。