SQL 数据库在没有轮询的情况下添加了新行时触发 C# Azure Function
C# Azure Function trigger when SQL Database has a new row added without polling
每次将新的数据库行添加到 SQL azure 数据库时,是否可以调用 Azure 函数?理想情况下没有任何基于计时器的轮询。我知道这可以在 blob 存储上完成,但看不到在 Azure 函数上执行此操作的方法。
提前致谢
这是可能的,但目前处于试验阶段。我在这个答案的末尾放了一个指南,您会发现它非常简单明了。但同样,这是实验性的,不要期望它一直运行良好。
另一个选项将在您拥有的代码中插入一条记录以将消息发送到服务总线队列,然后您可以将其用作您的功能的触发器(使用服务总线您还可以配置一个用于重试的死信队列)。
参考:https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-external-table
Function Apps 没有 SQL 触发器,但 Logic Apps do,它适用于 on-premises SQL 服务器和 Azure SQL 服务器.这将在添加新行时触发,但请注意它使用 timer-based 轮询。
它
- 在 SQL 数据库中启用更改跟踪
- 使用 Azure 数据工厂写入 Azure Table 存储
- 或使用 Logic App intermediary
的服务总线队列
- 将其用作您的函数的触发器
ADF 的文档对第 1 步和第 2 步有一个 walkthrough,除了它们以 Blob 存储为目标(并在整个过程中引用 Azure SQL,除了顶部的免责声明它也可以使用SQL服务器)。
每次将新的数据库行添加到 SQL azure 数据库时,是否可以调用 Azure 函数?理想情况下没有任何基于计时器的轮询。我知道这可以在 blob 存储上完成,但看不到在 Azure 函数上执行此操作的方法。
提前致谢
这是可能的,但目前处于试验阶段。我在这个答案的末尾放了一个指南,您会发现它非常简单明了。但同样,这是实验性的,不要期望它一直运行良好。
另一个选项将在您拥有的代码中插入一条记录以将消息发送到服务总线队列,然后您可以将其用作您的功能的触发器(使用服务总线您还可以配置一个用于重试的死信队列)。
参考:https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-external-table
Function Apps 没有 SQL 触发器,但 Logic Apps do,它适用于 on-premises SQL 服务器和 Azure SQL 服务器.这将在添加新行时触发,但请注意它使用 timer-based 轮询。
它
- 在 SQL 数据库中启用更改跟踪
- 使用 Azure 数据工厂写入 Azure Table 存储
- 或使用 Logic App intermediary 的服务总线队列
- 将其用作您的函数的触发器
ADF 的文档对第 1 步和第 2 步有一个 walkthrough,除了它们以 Blob 存储为目标(并在整个过程中引用 Azure SQL,除了顶部的免责声明它也可以使用SQL服务器)。