微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何禁用与Azure IoT Edge设备的云启动连接?

如何解决如何禁用与Azure IoT Edge设备的云启动连接?

我正在研究Azure IoT中心和IoT Edge,以大致了解功能和潜在用例。我过去从事的一个项目有一个严格的要求,即禁用云启动的联系并根据设备启动的轮询使事情正常进行。例如,当在设备管理门户上更改某些设置或提供新固件时,而不是将其推送给设备,则每个设备都会通过定期轮询来意识到这一点。

我对此要求没有控制权,但是如果要将那个项目移到Azure IoT,我确定将要求同样的要求。有没有简单的方法可以使用Azure来实现这一目标?

我曾考虑过对相关容器的网络访问进行调整,但这会导致IoT中心变得疯狂并试图与“无响应”设备进行连续通信并标记所有这些失败的尝试吗?

解决方法

此任务分为两部分:连接和消息。

连接

就连接而言,IoT中心的security principles之一是设备负责建立连接。 默认情况下, Azure IoT设备不接受传入连接。设备将与IoT中心建立AMQP或MQTT连接,然后将允许双向通信。 HTTPS连接是一个例外,如果使用该方法,则设备将轮询IoT中心以查找新消息。

消息

从设备启动双向连接时,这使设备和IoT中心可以相互发送消息。对于非边缘设备,如果您不使用SDK并自己编写代码(例如MQTT),则可以决定不监听任何传入消息。您不会订阅直接方法和孪生更新之类的主题,仅在需要时寻找它们。 对于IoT Edge设备,双向通信由边缘集线器处理。因此,您的其他容器(模块)不会直接与云对话。 剩下的边缘代理(也只处理传出连接)将其状态报告给云。

在对问题的评论中,您提到要求是云不能启动与设备的连接。简而言之,这并非不可能,IoT Hub并不是那样设计的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。