路由规则概览¶
路由规则功能为 EnOS 标准设备数据和自定义设备数据提供了灵活的访问和处理方法,如聚合计算等。用户能创建自定义路由规则,而该规则可过滤和转换来自 IoT 设备和相关资产数据的传入消息,并触发各种操作,如发送关联的通知、命令或与外部系统进行数据通信。
以下是一些可以通过路由规则实现的常见用例:
在保存到数据库之前,对传入的遥测或属性进行数据验证和修改。
将遥测数据或属性从设备复制到相关资产,以便聚合遥测数据。例如,来自多个设备的数据可以在相关资产中聚合。
基于设备生命周期事件触发操作。例如,设备在线/离线时创建告警。
触发对外部系统的 REST API 调用。
当发生复杂事件时发送电子邮件,并在电子邮件模板内引用其他实体的属性。
与外部如 Kafka、Spark、AZ 服务等集成。
关键概念¶
规则¶
规则是可以使用规则节点设计和构建以处理传入消息的路由规则。事件触发的规则必须以 Rule Entry 节点开始,定时触发的规则必须以 Scheduler 节点开始。
系统提供了一个仅能查看,不能编辑或删除的 EnOS_default 规则。该规则提供以下功能:
标准数据路由时,作为系统的默认规则。
创建的自定义规则可以通过 Checkpoint 节点路由回默认规则。
规则节点¶
规则节点是规则的基本组件和主要逻辑单元,每次处理单个传入消息并生成一个或多个传出消息。
规则节点可以过滤、丰富、转换传入消息、执行操作或与外部系统通信。更多信息,参见 规则节点概述。
规则消息¶
规则消息是一个可序列化的、不可变的数据结构,表示系统中的各种消息。例如:
接收遥测,属性更新,事件或设备指令。
设备状态事件:连接,断开,激活,未激活等。
其他系统事件如预定义消息。
规则消息包含以下信息:
消息 ID:基于时间的,通用的唯一标识符。
消息的发起者:设备、资产或其他实体标识符。
信息类型:如 “测点上报” 或 “重启事件” 等。
消息的有效载荷:带有实际消息有效载荷的 JSON 正文。
元数据:关于消息的附加数据的键-值对列表。
规则节点关系¶
规则节点关系指定两个规则节点之间的关系。每个关系都有关系类型,即用于识别关系逻辑含义的标签。规则节点关系可以有多个标签。
消息处理结果¶
处理消息时有两种可能的结果。
成功:当规则的最后一个规则节点成功处理消息时,消息处理尝试将被标记为 “成功”。
失败:如果其中一个规则节点产生了消息处理的 “失败”,并且没有规则节点来处理该失败,则消息处理尝试将被标记为 “失败”。
使用限制 ¶
在创建任何路由规则之前请阅读以下内容。此处列出的限制条件适用于每个 OU。
项目 |
使用限制 |
---|---|
资产类型 |
仅支持设备资产,不支持逻辑资产。 |
允许创建的最大规则总数 |
100 |
单个规则內包含的最大节点数 |
50 |
节点日志的最长存储时间 |
7 天 |
OU 內可配置的最大运行实例数 |
10 |
OU 內可配置的最大单实例运行资源数 |
8 CU(4 Core CPU + 16 GB 内存) |
适用场景¶
以下是 3 个使用路由规则的教程,可供参考。