有没有办法使用Node.js SDK中的共享访问签名密钥连接到Azure Service Bus订阅?我们希望使用SAS密钥来读取订阅中的消息。
SAS中有documentation的内容,但没有具体内容。
我无法理解。
答案 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);
}
});
原始:
同时检查一下followup stackoverflow answer,这两个链接应该将你排除在外吗?
由于