【问题标题】:How to connect to an Azure Service Bus subscription with the Node.js SDK using SAS Keys?如何使用 SAS 密钥通过 Node.js SDK 连接到 Azure 服务总线订阅?
【发布时间】:2017-02-16 22:02:20
【问题描述】:

有没有办法使用 Node.js SDK 中的共享访问签名密钥连接到 Azure 服务总线订阅?我们想使用 SAS Key 从订阅中读取消息。

documentation 中有一些关于 SAS 的内容,但没有具体内容。

我想不通。

【问题讨论】:

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


【解决方案1】:

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

此包可让您轻松生成共享访问签名: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

【讨论】:

  • 我们将在后端生成 sas 密钥。我们考虑在客户端使用 Node.js SDK 来读取消息。这就是为什么我问是否有一种方法可以使用 Node SDK 来读取带有 SAS 密钥的消息。我们正在切换到使用 REST API 来使用“https”模型读取节点中的消息。
【解决方案2】:

回应您的评论:

了解但不创建实例,您将无法对服务总线操作执行任何操作 - 其中包括能够从订阅号读取消息?

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

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,结合这两个链接应该可以解决你吗?

谢谢

【讨论】:

  • 我不想使用连接字符串创建服务总线实例。我想创建一个服务总线实例,用于使用 SAS 密钥从订阅中读取消息。
  • 不幸的是,我们尝试过,但没有成功。
  • 您能否发布一些示例代码 - 以便我们了解您想要实现的目标?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-23
  • 2021-09-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多