如何指定到网关的路由

How to specify the route to the gateway

我想创建一个 'hierarchy' 边缘设备并因此使用网关机制。目前网关只是一个透明网关,它将消息传递到 IoT 中心。 (https://docs.microsoft.com/en-us/azure/iot-edge/how-to-create-transparent-gateway-linux).

情况:我有两个边缘设备,比如 'Sensor' 和 'Gateway'。如何在部署中指定 Sensor 的输出在上游到 IoT Hub 之前需要先到 Gateway 的路由?

传感器路线:"route":"FROM /messages/* INTO ???"

网关路由:"route":"FROM /messages/* INTO $upstream"

对于 v2 IoT Edge 的当前版本(1.0,于 2018 年 6 月下旬发布),您无法将边缘设备链接到一个层次结构中。这是许多场景所需的功能,但我们还不支持(我在 Azure IoT Edge 团队)。我们计划启用它,但我没有时间表。

最直接的问题是:IoT Edge 运行时构建一个基于 SAS 的连接字符串,用于代表设备建立与云的连接。运行时只知道如何构建包含 IoT 中心主机名的连接字符串:

HostName=<hub>;DeviceId=<device>;SharedAccessKey=<secret>

要连接到另一个边缘设备而不是 IoT 中心,连接字符串需要一条额外的信息——另一个边缘设备的主机名:

HostName=<hub>;DeviceId=<device>;SharedAccessKey=<secret>;GatewayHostName=<edge>

由于连接字符串的原因,边缘设备只能与云端的 IoT Hub 通信,而不能与其他边缘设备的 IoT Hub 类接口通信。

这是一个很容易解决的问题,但除此之外我们还不知道是否还有其他阻塞问题。还有一些工作要做,以确保创建边缘层次结构的整个体验有效且有意义。