Как получить QueueDetails из очереди служебной шины? - PullRequest
1 голос
/ 19 марта 2020

Я использую azure -sdk- js для чтения и отправки сообщений в Azure Очереди служебной шины.

Мне успешно удалось подключиться к очередям , чтение сообщений, чтение DLQ и отправка сообщений. Я хотел бы расширить это, чтобы показать информацию о том, сколько сообщений существует в каждой очереди, сколько обрабатывается и сколько существует DL. Я обнаружил, что QueueDetails содержит эту информацию. Но я не понимаю, как получить эти QueueDetails. QueueDetails реализовано QueueResponse, поэтому в основном я ищу метод GetQueue(queueName), но я не могу его найти.

Кто-нибудь реализовал что-то как это раньше и знает, какой метод мне нужно использовать?

Ответы [ 4 ]

3 голосов
/ 25 марта 2020

Несколько интерфейсов, таких как QueueDetails, были случайно обнаружены из пакета @azure/service-bus в версии 1.1.3. Клиент управления 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 не предложит аналогичные возможности в ближайшем будущем.

2 голосов
/ 19 марта 2020

Итак, пакет @azure/service-bus, по сути, обеспечивает связывание на основе AMQP с Azure Service Bus и имеет только методы для работы с сообщениями. Функциональность для управления объектами (очереди, темы и подписки) была удалена из этого пакета.

У вас есть три основных варианта:

  1. Использование пакета @azure/arm-servicebus: Azure Сервис Команда шины переместила функциональность для управления объектами из плоскости данных в плоскость управления. Таким образом, вы должны использовать этот пакет, чтобы получить подробную информацию об очереди. Вы хотите вызвать метод get
  2. Использовать пакет azure-sb: Это действительно старый пакет, который является оберткой над REST API. Вы можете найти более подробную информацию об этом пакете здесь: https://github.com/Azure/azure-sdk-for-node/tree/master/lib/services/serviceBus.
  3. Использование REST API напрямую: Как упоминалось в другом ответе, вы можете напрямую использовать REST API для получения подробных сведений об очереди. .
1 голос
/ 20 марта 2020

Я проверяю SDK, есть serviceBusAtomManagementClient , у него есть метод getQueueDetails , в SDK он использует GetQueueResponse расширяет QueueDetails , вы можете обратиться сюда.

А в github есть пример об управлении атомами, более подробную информацию смотрите в atomManagementApi .

1 голос
/ 19 марта 2020

Вы можете использовать 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...