Python 气流-如果脚本中未定义函数,则动态Dag创建失败
我试图通过自定义函数定义气流中的动力学DAG 如果函数在dag文件中定义,则dag将有效创建 但是,如果我将此函数放入自定义库(安装在带有pip的airflow env中)并将其导入dag文件中,则不会创建dag,尽管不会引发任何错误 我的实际代码大致如下所示:Python 气流-如果脚本中未定义函数,则动态Dag创建失败,python,airflow,airflow-scheduler,Python,Airflow,Airflow Scheduler,我试图通过自定义函数定义气流中的动力学DAG 如果函数在dag文件中定义,则dag将有效创建 但是,如果我将此函数放入自定义库(安装在带有pip的airflow env中)并将其导入dag文件中,则不会创建dag,尽管不会引发任何错误 我的实际代码大致如下所示: library.py def create_dag(dag_id, main, default_args, schedule_interval): dag = DAG( dag_id=dag_id,
def create_dag(dag_id, main, default_args, schedule_interval):
dag = DAG(
dag_id=dag_id,
default_args=default_args,
schedule_interval=None
)
with dag:
t1 = PythonOperator(
task_id="main",
python_callable=main
)
return dag
from library import create_dag
dag_id = "test"
def main():
print("foo")
globals()[dag_id] = create_dag(
dag_id,
main,
default_args,
None
)
提前感谢最终在文档中找到了解决方案:“包含DAG的文件是否在内容的某个位置包含字符串“airflow”和“DAG”?搜索DAG目录时,airflow会忽略不包含“airflow”和“DAG”的文件”以防止DagBag解析导入与用户DAG并置的所有python文件。” 通过将函数移动到另一个文件夹中,我从文件中删除了单词“DAG”