如何使用 Hasura 事件触发 python 脚本

How to trigger python script with Hasura event

我目前正在构建一个自托管的 Vuejs 网络应用程序(使用帐户登录)。 webapp 需要是一个 Python webscraper GUI,我的用户可以在其中控制 Python scraper。

因此,例如,用户填写端点、启动爬虫、查看结果、触发新的更深入的爬虫等。

我有 Python 用于抓取的脚本。 我决定在前端使用 VueJS + AWS cognito + Hasura

我很难理解如何触发 python 脚本并将结果转储到数据库中并显示给前端。

我喜欢 3 因素方法:

我的爬虫数据可以是很多数据库条目,所以我不喜欢通过突变将它们输入数据库。

我是否必须创建 Flask 端点才能让 Hasura 触发这些 webhook? 我对无服务器不熟悉。 如何让我的 Python 爬虫脚本无服务器? 或者我可以只使用 SQLalchemy 将爬虫结果转储到数据库中吗? 但是如何通知我的前端用户数据已准备好?

这个问题中有很多问题,答案会有些自以为是,因此它可能不是最适合 Whosebug 的。

话虽这么说,但在通读完您的 post 后,我建议您在第一次尝试时使用 SQLalchemy 将抓取作业的结果直接存储到数据库中。听起来你对这种方法最熟悉。

使用 Hasura,您可以简单地将 subscription 用于您在前端查询的作业结果,这样 UI 将在结果一出现就在 Vue 端自动更新可用。

您必须决定如何开始抓取作业,您有几个不同的选择:

  • 从您的 Python 应用公开一个 API 端点并让 UI 触发它
  • 使用Hasura Actions
  • 在 Python 中构建 GQL 服务器并使用 Remote Schemas
  • 将其附加到 Hasura
  • 允许您的应用使用包含有关抓取作业信息的 graphql 突变将记录放入数据库,然后允许 Hasura 使用 Hasura Python 应用触发 Webhook 端点 Event Triggers

Hasura 不关心数据如何进入数据库,它提供了大量的功能和价值,即使您在堆栈的另一部分使用不同的数据库访问层也是如此。