【问题标题】:Azure Event Hub access blocked in Node-red节点红色阻止 Azure 事件中心访问
【发布时间】:2019-03-07 19:56:01
【问题描述】:

我正在尝试通过 Node-red 连接到 Azure 事件中心以获取我正在转发的数据,但我怀疑它由于访问问题而失败。

我用来拉取数据的节点如下: https://flows.nodered.org/node/node-red-contrib-azure-eventhub-receive

正如您在上图中看到的那样,它返回一个错误而没有指定哪个。这里棘手的是我在企业网络中使用它,我猜有一些封闭的端口阻止了访问,但我找不到哪个。 Node-red 确实可以访问 Internet,因为我已经从调色板下载了一些节点,因此可以将问题缩小到可访问性。

我在我的家庭网络中使用了相同的设置,没有任何问题,因此放弃了 Azure、事件中心和连接字符串的任何问题。

有没有人知道它正在通过哪个端口或可能是什么阻塞了它?

【问题讨论】:

    标签: node.js azure node-red azure-eventhub


    【解决方案1】:

    Azure 事件中心使用 AMQP 协议传输消息。高级消息队列协议 1.0 是一种标准化的框架和传输协议,用于在两方之间异步、安全和可靠地传输消息。它是 Azure 服务总线消息传递和 Azure 事件中心的主要协议。这两项服务还支持 HTTPS。也支持的专有 SBMP 协议正在逐步淘汰,以支持 AMQP。

    这里有一个简短的总结和一些参考资料,应该澄清出站端口的主题:

    首先,这取决于您是使用旧客户端还是新客户端,还是使用其他 API。 AMQP 协议指南实际上在下面的“连接和会话”部分下的文章中有很好的指导:

    https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-amqp-protocol-guide

    以上文章要点:

    • Azure 服务总线需要始终使用 TLS。

    • 它支持通过 TCP 端口 5671 和 TCP 端口 5672 的连接。服务器立即使用 AMQP 规定的模型提供强制升级到 TLS。 AMQP WebSockets 绑定在 TCP 端口 443 上创建一个隧道,然后等效于 AMQP 5671 连接。

    • 现代(.Net Standard 和 Java)客户端都使用 AMQP,因此上述指南适用。

    • 旧的 .NET 库有一个自定义的、基于 WCF 的协议,该协议使用 TCP 和端口 9354(称为 SBMP,服务总线消息传递协议)。

    • 如果您只使用我们的 REST API,您可能只能打开端口 443。

    IP 地址白名单

    要为您的连接找到正确的 IP 地址以将其列入白名单,例如,您可以执行以下操作。从连接字符串中复制命名空间 URL,或者通常只使用 YourNamespaceName.servicebus.windows.net,然后打开命令提示符并执行:nslookup YourNamespaceName.servicebus.windows.net。 “非权威答案”中返回的IP地址就是你要找的。​​p>

    请注意:此 IP 地址是静态的。它会改变的唯一时间点是如果我们例如会将命名空间恢复到不同的集群上,这在不发生严重事件的情况下通常不会发生。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-19
      相关资源
      最近更新 更多