使用 Freshdesk 中的外部事件触发 Apache Airflow 的数据管道?

Triggering Apache Airflow's data pipeline using an external event in Freshdesk?

我在 Airflow 中创建了一个数据管道,它有助于在工作时间内在工单中的某些值发生变化时更新 Freshdesk 中的工单。我更新票证的逻辑工作正常,但我想在 Freshdesk 界面中发生事件时触发 dags,这样我就不需要手动触发 dags。

FreshDesk 中有自动化规则,它在 https://companyname.freshdesk.com/api/v2/tickets/{{ticket.id}} 中提供外部 webhook,其中 {ticket.id} 是了解从数据管道更新工单的 ID 所必需的。

我需要知道如何连接webhook等外部触发器,以便我们可以在Airflow中自动触发数据管道。

我的 Airflow 版本 1.10

我不确定 Freshdesk,但根据 this 的说法,听起来好像您可以通过它的自动化机制打击外部 API。

如果是这样,那么我认为 this 就是您要找的。这是 Apache Airflow 的 REST API 参考文档。

Airflow 允许您通过网络对其进行管理API,但您首先需要在配置中启用它。您应该将 following configuration 设置为至少使用基本身份验证。

请记住,那时候那是一个实验性的 API,较新的版本稍微改变了 URL 模式和 API。现在更完整了。

A​​irflow 没有允许基于来自其他服务的 webhook 触发 DAG 的机制。

该用例可能包含在 AIP-35 Add Signal Based Scheduling To Airflow 中,但这是目前增强 Airflow 的想法草案。

要使用当前功能实现您的用例,您需要其他 application/service 来处理由 Freshdesk 触发的 webhook 并在带有 RestAPI 的 Airflow 中触发新的 DAG 运行 Trigger new DAG run endpoint

你需要注意频率。如果创建新 DAG 的频率 运行s 太高你应该考虑切换到批解决方案(Airflow 更适合)