我正在使用azure-sdk-js来读取消息并将消息发送到Azure Service Bus队列。
我已经成功地设法连接到队列,读取消息,读取DLQ和发送消息。我想扩展它以显示有关每个队列中存在多少消息,正在处理多少消息以及有多少个DL的信息。我发现QueueDetails
拥有此信息。但是我不明白如何获得那些QueueDetails
。 QueueDetails
由QueueResponse
实现,所以基本上我正在寻找一种GetQueue(queueName)
的方法,但是我似乎找不到它。
任何人以前都实现过这样的事情,并且知道我需要使用哪种方法吗?
答案 0 :(得分:3)
1.1.3版的QueueDetails
包中偶然暴露了一些接口@azure/service-bus
。使用这些接口的ATOM管理客户端仍在工作中,因此不属于导出的面向公众的API界面的一部分。我们有一个可行的实现方案,但最终的设计仍在讨论中,API可能会更改。
关注https://github.com/Azure/azure-sdk-for-js/issues/7991和https://github.com/Azure/azure-sdk-for-js/issues/7938,以获取更多信息。
现在,请使用@azure/arm-servicebus
程序包来获取队列中的详细信息。如果您希望通过使用连接字符串来实现这些功能,则推荐使用azure-sb
,直到@azure/service-bus
在不久的将来提供类似的功能为止。
自2020年6月8日起更新:
大家好,
我们很高兴与您分享@azure/service-bus
软件包的v7的第三个预览版(7.0.0-preview.3)现在支持通过单独的“客户端”,可以通过连接字符串或AAD凭据实例化。
请签出sample for management operations以获得更多详细信息。
请注意,该预览仍处于预览状态,下一个预览可能会根据内部和外部反馈对API进行一些更改。
请尝试一下,将问题记录在https://github.com/Azure/azure-sdk-for-js
上,让我们知道您是否有任何反馈答案 1 :(得分:2)
因此,@azure/service-bus
软件包本质上提供了与Azure Service Bus的基于AMQP的连接,并且仅具有主要用于处理消息的方法。该软件包已删除了管理实体(队列,主题和订阅)的功能。
您基本上有三个选择:
@azure/arm-servicebus
包:Azure Service Bus团队将管理实体的功能从数据平面移到了控制平面。因此,您必须使用此程序包来获取有关队列的详细信息。您要调用的方法是get
azure-sb
软件包:这确实是一个旧软件包,是REST API的包装。您可以在这里找到有关此软件包的更多详细信息:https://github.com/Azure/azure-sdk-for-node/tree/master/lib/services/serviceBus。答案 2 :(得分:1)
您可以使用REST Api和GET操作:
https://docs.microsoft.com/en-us/rest/api/servicebus/queues/get
您要查找的信息在“邮件计数详细信息”内:
https://docs.microsoft.com/en-us/rest/api/servicebus/queues/get#messagecountdetails
答案 3 :(得分:1)
我检查sdk,有一个serviceBusAtomManagementClient,它具有getQueueDetails方法,在sdk中,它使用GetQueueResponse扩展了QueueDetails,您可以参考在这里。
在github中有一个有关atomManagement的示例,更多详细信息请参见atomManagementApi。