从 SQL 向 Azure 服务总线队列添加消息

Posted

技术标签:

【中文标题】从 SQL 向 Azure 服务总线队列添加消息【英文标题】:Add message to Azure Service Bus Queue from SQL 【发布时间】:2017-07-28 10:07:21 【问题描述】:

我的一个数据库表上有一个 SQL 触发器,并希望在执行 SQL 触发器时向我的 Azure 服务总线队列添加一条消息。

有没有人有如何做到这一点的 SQL 代码示例?

值得一提的是,SQL 将在 Azure 中运行的 SQL 数据库中运行。

请不要开始讨论使用 SQL 触发器的问题,否则这纯粹是针对上述问题的有效 SQL 代码。

【问题讨论】:

【参考方案1】:

我已经使用带有 SQLserver 的逻辑应用程序实现了 Azure SQL 和服务总线解决方案(也是事件网格的解决方案),触发对表的新添加,标准存储过程然后生成相关的 JSON 有效负载并将其存储在表中逻辑应用有触发器的位置。当 JSON 有效负载写入表时,逻辑应用程序被触发,并将有效负载发送到服务总线队列或主题或事件网格主题 - 就像一个魅力。

【讨论】:

您好 Jonas,您能详细说明一下您是如何实现的吗?您是对 ServiceBus 进行了 REST 调用,还是直接使用了该程序集?【参考方案2】:

不清楚您的 SQL 是在 VM 还是 SQL 数据库上运行。您可以做的是创建一个 CLR 存储过程并通过 REST APi 调用 Azure 服务总线。

https://blogs.msdn.microsoft.com/sqllive/2008/06/18/accessing-rest-based-web-services-using-sql-clr/

通过 REST API 的 Azure 服务总线队列

https://docs.microsoft.com/en-us/rest/api/servicebus/queues

【讨论】:

这个方法在这里详细实现:jsomers.be/archive/2018/12/20/…

以上是关于从 SQL 向 Azure 服务总线队列添加消息的主要内容,如果未能解决你的问题,请参考以下文章

从 Azure 函数将消息写入 Azure 服务总线队列

从死信队列重新提交消息 - Azure 服务总线

如何基于 Azure 中的服务总线队列自动缩放 Python webjob?

Azure 服务总线 - 删除特定消息

读取 Azure 服务总线队列中的所有活动消息

无法从 Azure 服务总线中的并发会话按顺序接收消息