通过Edge网关进行Azure IoT协议翻译多路复用

时间:2019-03-19 17:23:50

标签: azure-iot-hub azure-iot-edge

在Azure物联网环境中,尝试连接任何不支持使用Microsoft's reference architecture协议转换is recommended的设备时。

我已经实现了一个多路复用连接的转换网关,其功能类似于this implementation,该功能使用“设备连接”访问策略通过单个AMQP连接将消息作为任何设备发送到Cloud IoT中心。例如,通过以下链接'/devices/' + deviceIdentifier + '/messages/events';

发送消息

这对于device -> my middleware -> Cloud IoT Hub形成的连接和相反的方向都是完全有用的。我想通过引入透明网关device -> my middleware -> Edge IoT Hub -> Cloud IoT Hub

来实现相同的目的

我的问题是由于Edge Hub似乎不接受“设备连接”访问策略密钥。

作为身份验证,我正在构建一个SharedAccessSignature,如在示例存储库及以下示例中所示,但是据我所知,SharedAccessKeyAuthenticationProvider.fromConnectionString与之不同,无法指定gatewayHostName。

this.sas = SharedAccessSignature.create(
    encodeURIComponent(this.endpoint), this.keyName, this.key,
    Math.ceil((Date.now() / 1000) + this.KEY_TIMEOUT)
);

简而言之,我试图让我的中间件通过透明的IoT Edge网关使用“设备连接”访问策略密钥通过单个TLS连接“模拟”集线器上的任何设备,但是我看到了没有地方可以在SharedAccessSignature上指定gatewayHostName参数,也找不到在IoT Edge集线器上查找和配置IoT hub-level shared access policies的方法。

0 个答案:

没有答案