我正在尝试设置一个多边缘设备作为边缘网关。我们不希望我们的叶子/传感器/下游设备直接连接到互联网/云,因此我希望物联网边缘网关(顾名思义)能够连接下游设备和云/物联网枢纽之间的连接。但是,我意识到物联网集线器/边缘的连接字符串在任何设备级别上都是简单的。
这让我假设下游设备将消息发送到端点(prolly messages/* )到云/物联网中心,而网关正是从那里获得消息(可能会处理这些数据),并将其转发回$upstream,后者避开了网关的全部功能。
这里,在IOT边缘网关https://learn.microsoft.com/en-us/azure/iot-edge/how-to-create-transparent-gateway的消息路由部分中,在来自下游设备的路由消息部分中。
{
"routes":{
"sensorToAIInsightsInput1":"FROM /messages/* WHERE NOT IS_DEFINED($connectionModuleId) INTO BrokeredEndpoint(\"/modules/ai_insights/inputs/input1\")",
"AIInsightsToIoTHub":"FROM /messages/modules/ai_insights/outputs/output1 INTO $upstream"
}
}
使之听起来像是网关正在将掉在内置端点(默认)上的消息路由到$upstream。我在网上找不到关于这个主题的任何其他更清晰的文件。如果有人把这件事弄清楚,我会很感激的。我期待着边缘网关的连接字符串(我在设备端提到的连接字符串是类似于localhost的:端口而不是cloudaddress+gatewayhostname)
发布于 2019-07-12 07:24:57
如果连接字符串包含网关主机名,并且在设备上使用的SDK正确地处理此问题,则设备只连接到网关,而不是连接到IoT集线器。
您可以在这里看到.NET SDK中的示例:
this.HostName = builder.GatewayHostName == null || builder.GatewayHostName == "" ? builder.HostName : builder.GatewayHostName;
如果设置了网关主机名,它实际上会覆盖连接的IoT集线器主机名。
https://stackoverflow.com/questions/57001913
复制相似问题