在更改为 Azure SQL 数据库 table 时调用外部 API

Call external API on change to Azure SQL database table

我们在 Azure SQL 数据库中有一个名为 Guest 的 table。我们还有一个活动管理工具位于提供商云上的 API 后面。

当在访客 table 中创建、更新或删除记录时,我们想调用 API 以便使用有关访客的最新信息更新活动管理工具。

我们最初的想法是将数据库触发器连接到 C# .NET Azure 函数,但是,看起来这仅在 Cosmos DB 中受支持。

我们不希望应用程序 运行 执行定期检查数据库更改并将这些更改发送到 API 的计划任务。

我们也一直在阅读有关创建 CLR 存储过程的信息,但看起来这些在 Azure SQL 数据库中不受支持。

期待听到想法和建议。

我能想出几种方法来完成这个。

[很遗憾,SQL Azure 不再支持 CLR。​​]

一种方法是:

  1. 在您的 Guest table 上打开 Change Data Capture
  2. 创建具有 timer trigger 的无服务器 Azure 函数。此函数将使用 CDC 来确定您的 table 中发生了什么变化,并相应地调用您的供应商 API。

与"an application running on a scheduled task"相比,无服务器功能相对轻量级。

对于这种情况,您也可以使用 Azure Logic Apps

有一些预定义的触发器可以帮助触发

  • 创建项目时

  • 修改项目时

然后使用 Action 调用您的 API

Refer here

这将是您实现用例的最简单方法。

您将必须迁移到支持 CLR 和 Broker 的 Azure SQL 托管实例。 https://docs.microsoft.com/en-us/azure/sql-database/sql-database-managed-instance-transact-sql-information#clr