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 环境中自动应用该修复程序。
我们在 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 环境中自动应用该修复程序。