如何使用SAS Keys连接到Node.js SDK的Azure Service Bus订阅?

时间:2017-02-15 09:28:09

标签: node.js azure azureservicebus azure-servicebus-topics

有没有办法使用Node.js SDK中的共享访问签名密钥连接到Azure Service Bus订阅?我们希望使用SAS密钥来读取订阅中的消息。

SAS中有documentation的内容,但没有具体内容。

我无法理解。

2 个答案:

答案 0 :(得分:0)

共享访问签名(SAS)是Service Bus消息传递的主要安全机制。通常,Service Bus发布者的SAS令牌仅使用特定队列或主题的发送和接收权限创建。因此,您需要使用连接字符串来连接到Azure Service Bus命名空间。

此软件包允许您轻松生成共享访问签名:https://github.com/mitchdenny/shared-access-signature

关于如何通过REST API使用SAS令牌向Service Bus队列或主题发送消息,您可以参考https://docs.microsoft.com/en-us/rest/api/servicebus/send-message-to-queue

有关使用SAS的详细信息,请参阅Shared Access Signature Authentication with Service Bus

答案 1 :(得分:0)

回应你的评论:

理解但没有创建实例,您将无法对服务总线操作做任何事情 - 这些包括能够从订阅中读取消息吗?

所以理论上你的代码应该是这样的:

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);
    }
});

More info here

原始

同时检查一下followup stackoverflow answer,这两个链接应该将你排除在外吗?

由于