我可以在Airflow上使用前端吗?

问题描述

我想公开一个前端用户界面,以接受来自用户的后端数据管道中的某些输入参数,然后在前端用户界面上再次向用户显示输出。我可以将数据管道作为Airflow DAG,每当用户提交输入参数时就按需运行。本质上,我想将Airflow作为Web应用程序的后端。我可以有一个连续运行的DAG来为用户提供网页吗?每当他们提交输入参数时,就会执行数据管道并显示结果?

我找到了一个接近的示例-https://towardsdatascience.com/10-minutes-to-building-a-machine-learning-pipeline-with-apache-airflow-53cd09268977,但是我不确定它是连续提供网页还是仅在DAG运行时提供,然后在DAG完成时停止提供。

解决方法

在我从事过的项目中,最常见的解决方案涉及通过Flask App or Flask App Builder来显示plugins folder in your setup对象。

第二个链接应该为您提供一个很好的例子。

从这里开始,您可以使用airflow/utils/db.py中的Session概念,让Flask应用程序本质上调用Airflow模型或与后端数据库进行交互。

祝你好运!

,

一种方法是,您可以通过编写上一个答案中提到的自定义插件来公开与Airflow交互的API。

我能想到的另一种方法是利用Airflow命令行界面。基本上,是让用户界面远程执行Airflow命令。幸运的是,已经有一个插件可以做到这一点。 Airflow REST API Plugin将Airflow命令行界面公开为REST API。我还没有亲自尝试过。但是在我们需要一些操作的API时进行了探索。从文档来看,它似乎是稳定且维护良好的。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...