【问题标题】:Events not replayed when certificate expired azure iot hub edge证书过期时未重播事件 azure iot hub edge
【发布时间】:2021-12-02 11:05:31
【问题描述】:

上下文

一个带有边缘设备的天蓝色物联网集线器,通过 edgeHub 部署模板中的 ttl 设置配置为具有 20 小时的缓存。存储也绑定到容器选项中的主机文件夹。

问题

最近几天,我们的部署管道出现了一些问题,所以edgeHub配置可能丢失了? (我希望不是因为,门户网站显示模块只是卡在了上一个工作版本上),并且在解决了管道问题后,设备证书过期了。于是我们重新启动设备生成新证书,停机时间大约为 20 小时。

问题

检查植根于 blob 存储的遥测消息后,在停机时间内没有消息,那么为什么没有重播事件?以及如何防止这种情况再次发生?

【问题讨论】:

  • 您好,您是否打开了支持票证以便工程师也可以查看内部日志?这是否被验证为服务器端中断? aka.ms/iothelp
  • @asergaz 是的,我开了一张支持票,但遗憾的是,我花了一些时间来获取支持包日志,并且它们不包含服务中断事件。

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


【解决方案1】:

如果您使用 IoT Edge 离线功能,IoT Edge 设备、其部署的模块以及任何子设备可以无限期运行

由于消息的存储取决于生存时间 (TTL) 设置和用于存储消息的可用磁盘空间,因此您需要在环境中找到正确的平衡点,以避免在一段时间无法访问 IoT 中心时丢失消息超过 20 小时。

然后建议是增加 TTL。最大值仅受整数变量的最大值限制,大约为 20 亿秒。

参考:Understand extended offline capabilities for IoT Edge devices, modules, and child devices

【讨论】:

  • 是的,这是我做的第一步,将 ttl 从 20 小时增加到 7 天。许多消息队列提供的另一个很酷的功能是重播事件的能力,这在 IotEdge 案例中没有记录(或没有实现?)。知道用于缓存系统的 RocksDB 键值数据库在 storage 文件夹中仍然存在一些 .sst 文件,如果我可以重播这些事件可能会非常有用..
  • IoT Edge 使用 Azure SQL Edge 存储数据。您可以将丢失的数据与 Azure SQL Edge 同步:docs.microsoft.com/en-us/azure/azure-sql-edge/…
  • 我认为缓存存储使用的是 RockDB,Azure SQL Edge 是 IoT Edge 使用的另一个数据库吗?我检查了您提供的文档,但对于我当前的问题,有很多事情我不一定能接受,我只想手动重播事件,为什么这么痛苦?
  • 在 IoT Edge 中,您可以使用 Azure Blob StorageAzure SQL Edge。我从未听说过在 IoT Edge 中使用 RockDB。你能指点我那个信息吗?抱歉,重播事件不是内置的 afaik。建议您添加新功能请求here
  • 老兄,我说的是离线功能,当网络不好或设备断开连接时,有一个内置的缓存系统可以将事件保存在边缘并重试发送它们当连接恢复时,这是文档:docs.microsoft.com/en-us/azure/iot-edge/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-01
  • 1970-01-01
  • 2016-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多