Как подключиться к подписке служебной шины Azure с помощью пакета SDK для Node.js с помощью ключей SAS?

Есть ли способ подключиться к подписке служебной шины Azure с помощью ключа подписи общего доступа в пакете SDK для Node.js? Мы хотим использовать ключ SAS для чтения сообщений из подписки.

Есть кое-что о SAS в документации, но ничего конкретного.

Я не могу понять.


person Robert Iagar    schedule 15.02.2017    source источник
comment
Вы когда-то видели этот ответ о переполнении стека?   -  person Le Roi Beukes    schedule 16.02.2017
comment
Я видел это, но это было в 2014 году, и мне показалось, что с тех пор SDK немного изменился.   -  person Robert Iagar    schedule 16.02.2017


Ответы (2)


Подписи общего доступа (SAS) являются основным механизмом безопасности для обмена сообщениями служебной шины. Обычно маркеры SAS для издателей служебной шины создаются только с привилегиями отправки и получения в определенной очереди или теме. Поэтому вместо этого вам нужно будет использовать строку подключения для подключения к пространству имен служебной шины Azure.

Этот пакет позволяет легко создать подпись общего доступа: https://github.com/mitchdenny/shared-access-signature.

О том, как отправить сообщение в очередь или тему служебной шины с помощью токена SAS через REST API, вы можете найти в https://docs.microsoft.com/en-us/rest/api/servicebus/send-message-to-queue.

Для получения дополнительной информации о работе с SAS см. Shared Доступ к аутентификации подписи с помощью служебной шины.

person Aaron Chen    schedule 16.02.2017
comment
Мы будем генерировать ключи sas в нашем бэкэнде. Мы подумали об использовании SDK Node.js на стороне клиента для чтения сообщений. Вот почему я спросил, есть ли способ использовать Node SDK для чтения сообщений с ключами SAS. Мы переходим на использование REST API для чтения сообщений в узле с использованием модели https. - person Robert Iagar; 16.02.2017

В ответ на ваш комментарий:

Понятно, но без создания экземпляра вы не сможете ничего делать в отношении операций служебной шины - в том числе возможность читать сообщения из подписки нет?

Итак, теоретически ваш код должен выглядеть примерно так:

var serviceBusConnectionString = "Endpoint=sb://somens.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=mykey";

var retryOperations = new azure.ExponentialRetryPolicyFilter();
var serviceBusService = azure.createServiceBusService(serviceBusConnectionString).withFilter(retryOperations);

serviceBusService.receiveSubscriptionMessage('MyTopic', 'LowMessages', function(error, receivedMessage){
    if(!error){
        // Message received and deleted
        console.log(receivedMessage);
    }
});

Подробнее здесь

Оригинал:

Также проверьте и этот ответ на последующий stackoverflow, объединенные эти две ссылки должны отсортировать вы вышли?

Спасибо

person Le Roi Beukes    schedule 16.02.2017
comment
Я не хочу создавать экземпляр служебной шины со строкой подключения. Я хочу создать экземпляр служебной шины для чтения сообщений из подписки с помощью ключа SAS. - person Robert Iagar; 16.02.2017
comment
Мы попробовали это, к сожалению, безуспешно. - person Robert Iagar; 16.02.2017
comment
Не могли бы вы опубликовать образец кода, чтобы мы могли увидеть, чего вы пытаетесь достичь? - person Le Roi Beukes; 17.02.2017