即使将边缘用作网关,leaf/downstream 设备是否直接连接到 iot-hub?
Do leaf/downstream devices connect directly to iot-hub even when edge is used as gateway?
我正在尝试将物联网边缘设备设置为边缘网关。我们不希望我们的 leaf/sensor/downstream 设备直接连接到 internet/cloud,因此我希望 iot-edge-gateway(顾名思义)桥接下游设备和 cloud/iot-hub。但是,我意识到 iot-hub/edge 在任何设备级别的连接字符串只是
连接字符串为 iothub-with-gatewayhostwayAppended
这让我假设下游设备将消息传输到端点 (prolly messages/* ) 到 cloud/iot-hub 并且网关从那里获取它(也许然后处理该数据)并将其转发回去到 $upstream,它避开了网关的整个点。
这里是 IOT-EDGE-GATEWAY 的消息路由部分
https://docs.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:port 而不是 cloudaddress+gatewayhostname)
如果您的连接字符串包含网关主机名 - 并且您在设备上使用的 SDK 可以正确处理此问题,则设备仅连接到网关,而不连接到 IoT 中心。
您可以在此处查看 .NET SDK 中的示例:
this.HostName = builder.GatewayHostName == null || builder.GatewayHostName == "" ? builder.HostName : builder.GatewayHostName;
如果设置了网关主机名,它实际上会覆盖连接的 IoT 中心主机名。
我正在尝试将物联网边缘设备设置为边缘网关。我们不希望我们的 leaf/sensor/downstream 设备直接连接到 internet/cloud,因此我希望 iot-edge-gateway(顾名思义)桥接下游设备和 cloud/iot-hub。但是,我意识到 iot-hub/edge 在任何设备级别的连接字符串只是
连接字符串为 iothub-with-gatewayhostwayAppended
这让我假设下游设备将消息传输到端点 (prolly messages/* ) 到 cloud/iot-hub 并且网关从那里获取它(也许然后处理该数据)并将其转发回去到 $upstream,它避开了网关的整个点。
这里是 IOT-EDGE-GATEWAY 的消息路由部分 https://docs.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:port 而不是 cloudaddress+gatewayhostname)
如果您的连接字符串包含网关主机名 - 并且您在设备上使用的 SDK 可以正确处理此问题,则设备仅连接到网关,而不连接到 IoT 中心。
您可以在此处查看 .NET SDK 中的示例:
this.HostName = builder.GatewayHostName == null || builder.GatewayHostName == "" ? builder.HostName : builder.GatewayHostName;
如果设置了网关主机名,它实际上会覆盖连接的 IoT 中心主机名。