【问题标题】:How to interact with Azure IoT Edge Runtime from custom Edge Module running Apache Nifi如何从运行 Apache Nifi 的自定义 Edge 模块与 Azure IoT Edge 运行时交互
【发布时间】:2019-02-14 08:09:56
【问题描述】:

我们的边缘设备基于 Azure IoT Edge 运行时。负责数据处理的模块之一是运行 Apache Nifi 版本的自定义模块。 处理的输出应该通过 IoT 中心发送到 Azure IoT Edge 消息总线和/或云上游。

有人知道如何连接边缘系统的这些部分吗? 我们是否必须在自定义模块上编写 C# 代码才能完成这项工作,还是有其他方法可以完成这项工作?

编辑:

经过进一步调查,我了解到我可以根据this 使用 MQTT 连接到 IoT Hub,并且应该能够通过使用Java SDK 编写一个自定义 Nifi 处理器,如here 所示,与本地消息总线交互ModuleClient,只需提供正确的连接字符串并确保自定义容器可以通过 IP 到达主机。

您认为我的假设对于实现我们的目标是否正确?

【问题讨论】:

  • 在 nifi 中有 ConsumeMQTTPublishMQTT 进程。如果您对 mqtt 有疑问 - 那么您不需要编写自定义处理器。如果您需要自定义处理器,那么您可以使用 groovy 脚本处理器来最大程度地减少 POC 工作。
  • @daggett 谢谢你的评论。这将使与本地 IoT 中心的交互更加容易。好的,所以我可以通过 MQTT 使用本地 IoT Hub 进行云上游和模块到模块的通信?
  • 好的,我将 IoT Edge Hub 和本地消息代理误解为 2 个不同的组件,但实际上它们是相同的。 IoT Edge Hub 负责云上游和本地模块到模块的通信。

标签: apache-nifi azure-iot-hub azure-iot-edge


【解决方案1】:

你的假设是正确的。您必须使用 Java Azure IoT SDK ModuleClient 类编写自定义 Nifi 处理器。我在 https://github.com/JMayrbaeurl/azure-iotedge-java-sampleshttps://github.com/JMayrbaeurl/azure-iotedge-java-samples的 Java Azure IoT Edge 示例的 spring-boot-iotedge-sample 中做了非常相似的事情

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-20
    相关资源
    最近更新 更多