AWS 的规则引擎,通常指的是 AWS IoT Core 规则引擎(AWS IoT Rules Engine),它是 AWS IoT 服务中的一个核心组件。
用途:从 IoT 设备接收数据并触发相应动作
AWS IoT Rules Engine 可以 实时处理来自设备发送到 AWS IoT 的 MQTT 消息或 HTTP 消息,并根据你定义的规则,把数据:
- 存储到 AWS 服务(如 S3、DynamoDB、Timestream)
- 发送到其他服务(如 Lambda、SNS、SQS、Kinesis、OpenSearch 等)
- 发送给另一个 IoT 设备
- 转发到第三方 API
- 触发警报、分析、告警处理等逻辑
规则引擎就像是一套“如果…就…”的自动化流程系统。
如果某个设备上传了温度数据,并且温度 > 30°C,
那么就触发 Lambda 函数进行降温控制,或发送告警邮件。
组件 | 说明 |
---|---|
SQL-like 规则查询语句 | 用类 SQL 的语法从 MQTT 消息中提取数据 |
Topic Filter | 匹配 MQTT 主题,如 sensors/+/temperature |
Actions(动作) | 触发操作,如写入 DynamoDB、调用 Lambda、发邮件等 |
条件判断 | 可以在 SQL 查询中设置 WHERE 条件做筛选 |
例如:
SELECT temperature, deviceId
FROM 'sensors/+/data'
WHERE temperature > 30
当设备上传的消息满足这个条件时,可以自动:
- 触发一个 AWS Lambda 函数 发送警告短信
- 把该数据 写入 Amazon Timestream 做时序分析
- 把数据 存储到 S3 归档
- 或同时做多个动作
应用场景:
- 智能工厂设备告警
- 车辆远程监控(车联网)
- 智能家居自动控制
- 传感器数据采集 + 自动入库
- 实时仪表盘展示(配合 Kinesis、OpenSearch)
AWS IoT 规则引擎 是用来在 设备数据到达 AWS 时,自动分析并触发后续处理逻辑 的工具,支持低代码、高可扩展的物联网自动化。
上面是大概的概念信息,下面是我们业务中实际用到的场景:
- 设备端(云台摄像机)汇总本地记录的事件信息和S3信息(开始结束时间、封面图、云存视频和检测相关信息);
- 设备端通过MQTT的DP上报到AWS(消息发布到 MQTT Topic,例如 topic/$ProductID/$DevId/prop/up);
- 业务云通过队列接收MQTT的消息;
- 规则引擎没用lambda,用的是kafka队列;
- Kafka用的是Amazon MSK,不是自建的Kafka;
Amazon MSK(Managed Streaming for Apache Kafka) 本质上就是一个 托管版的 Apache Kafka,由 AWS 提供、维护和自动管理。