azure-iot-hub - 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 中心接收到的任何消息似乎都来自边缘设备,而不是叶设备。
解决方案
这样一来,透明网关的设计就不是这样了。(参考:here。)
网关只是在设备和 IoT 中心之间传递通信。设备不知道它们正在通过网关与云进行通信,并且与 IoT 中心中的设备交互的用户不知道中间网关设备。
要解决此问题,有两种选择:
- 根据您现在所做的,将附加信息嵌入到叶设备上生成的消息中,以识别消息的来源。
- 移除透明网关中的自定义模块。在叶子设备消息中添加边缘设备 ID(或其主机名等)。
推荐阅读
- python - HTML页面图标未显示在Django中
- c - void 指针,并重新转换为所需的类型
- pine-script - pine 脚本 - ADX 指示修改
- reference - 防止 Visual Studio 2017 将近 100 个不必要的系统 dll 复制到 dll 项目的输出文件夹
- ios - 应用程序崩溃并调用 [ServicesDaemonManager] interruptHandler。-[FontServicesDaemonManager 连接]_block_invoke
- javascript - 如何使用 Selenium 和 Python 从由空格分隔的文本节点获取文本
- fonts - 无法嵌入字体时的位图文本
- javascript - .map() 显示来自 api 的数据的问题
- sql - 获取 oracle db 中的所有视图以及行数、列数、主键等详细信息
- reactjs - 在 ReactJs 中执行函数时禁用按钮