首页 > 解决方案 > Azure IoT Edge 作为透明网关 - 将网关名称作为属性添加到消息中?

问题描述

我在透明网关模式下使用 Azure IoT Edge。现在,我想为来自通过 Edge 网关的叶设备的任何消息添加一个属性,该属性基本上包含 Edge 设备 ID(或其主机名等)。从而允许跟踪消息流。

这有可能吗?我已经尝试在其中放置一个自定义模块,我将通过它路由所有消息:

"fromRaw": "FROM /messages/* WHERE NOT IS_DEFINED($connectionModuleId) INTO BrokeredEndpoint(\"/modules/taggingmodule/inputs/input1\")",
"intoUpstream": "FROM /messages/modules/taggingmodule/* INTO $upstream"

但是这样做我失去了“透明”的消息传递。随后在云 IoT 中心接收到的任何消息似乎都来自边缘设备,而不是叶设备。

标签: azure-iot-hubazure-iot-edge

解决方案


这样一来,透明网关的设计就不是这样了。(参考:here。)

网关只是在设备和 IoT 中心之间传递通信。设备不知道它们正在通过网关与云进行通信,并且与 IoT 中心中的设备交互的用户不知道中间网关设备。

要解决此问题,有两种选择:

  1. 根据您现在所做的,将附加信息嵌入到叶设备上生成的消息中,以识别消息的来源。
  2. 移除透明网关中的自定义模块。在叶子设备消息中添加边缘设备 ID(或其主机名等)。

推荐阅读