检查 AWS IoT Core 事物是否仍处于离线状态的最佳实践是什么?
对于许多人来说,能够查询 AWS IoT 事物的状态将是其应用程序的重要组成部分。幸运的 AWS 有一个关于如何在此处获取生命周期事件的最佳实践: https ://docs.aws.amazon.com/iot/latest/developerguide/life-cycle-events.html
在文档中,有一节描述了如何处理生命周期事件,在这里他们提到在收到断开生命周期事件后,您应该等待一段时间,然后再检查设备是否仍处于离线状态。
当该消息可用并被处理(由 Lambda 或其他服务)时,您可以先检查设备是否仍处于离线状态,然后再采取进一步操作。
这里的问题是如何检查设备是否仍处于离线状态?
文档中建议的基础设施是订阅主题“$aws/events/presence/disconnected/clientId”的 IoT 规则,它将在 SQS 队列上创建一条消息。SQS 队列将使用该deliveryDelay
属性延迟消息,然后 lambda 函数将使用该消息。正是在这个 lambda 函数中,我们应该检查设备是否仍然离线。
我可以简单地实现一个带有设备状态和时间戳的 dynamodb 表,每次发生连接或断开事件时都会立即更新该表。但是必须有更智能的方法来确定设备是否仍处于离线状态?