【发布时间】:2021-06-20 07:42:25
【问题描述】:
检查 AWS IoT Core 事物是否仍处于离线状态的最佳做法是什么?
对于许多人来说,能够查询 AWS IoT 事物的状态将是其应用程序的重要组成部分。 Lucky 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 表,每次发生连接或断开事件时都会立即更新该表。但必须有更智能的方法来确定设备是否仍处于离线状态?
【问题讨论】:
-
嗨 - 事物索引是否解决了这个问题?我确实在尝试实现相同的功能,但我发现事物索引可能需要几秒钟才能更新,所以我可能需要将 SQS 延迟增加到 10 秒以上。
标签: amazon-web-services aws-iot aws-iot-core