【问题标题】:Why do we have AWS IoT Events when AWS IoT core rules offers similar service当 AWS IoT 核心规则提供类似服务时,为什么我们会有 AWS IoT Events
【发布时间】:2020-10-22 17:08:23
【问题描述】:
AWS IoT Events:一项完全托管的服务,可以轻松检测和响应来自 IoT 传感器和应用程序的事件。
同样可以使用 AWS IoT 核心规则来实现。例如 - 触发 lambda 函数并发布到特定主题的规则。
AWS IoT Events 与 AWS IoT Core(规则)的用例是什么?
【问题讨论】:
标签:
amazon-web-services
aws-iot
aws-iot-core
aws-iot-events
【解决方案1】:
在与 IoT Core 规则作斗争后才发现 IoT Events 服务。
- IoT Core 规则似乎无法直接进行布尔运算,从而响应不同的负载内容。这些规则只是将消息(部分)传输到另一个服务。
我想响应来自 IoT 设备的警报状态,同时拥有保持活动信号。如何使用 IoT 核心中的规则执行此操作?我找不到直接执行此操作的方法。我的第一直觉是使用 Lambda 函数,然后从中进行过滤等。但是,它有 1000 个并发函数的软限制。并且看到我可能会运行大约 10k 具有 2 m 保持活动的 IoT 设备,使用 Lambda 规则执行过滤似乎有点错位。另外,你会如何保持活力?也许使用 dynamoDB 流触发警报状态的 lambda 函数,同时运行循环 lambda 函数来检查保持活动状态。
- IoT 事件直接支持计时器和布尔运算。因此,我可以在 IoT 事件(由 IoT 核心规则触发)中实现我的保持活动计时器和警报触发器。
因此,我不必处理触发 lambda 函数或循环 lambda 函数的 dynamoDB 流,或者 EC2 实例(或者您可以实现它)。
现在,由于我已经在 IoT 事件中完成了布尔运算/过滤,因此 Lambda 函数只会在触发警报或保持活动状态终止时调用。我需要从 IoT 事件调用 Lambda 函数以将(高优先级)推送消息发送到唯一的移动设备/用户(因为 SNS 的 IoT 事件目前似乎不支持这一点,只能发送一个主题到)。这也许是另一个故事。
IoT Events 文档中的其他一些示例是:https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-examples.html
暖通空调温度控制
起重机
使用传感器和应用程序进行事件检测
设备心跳
ISA 报警
简单报警