路由规则概览


路由规则功能为 EnOS 标准设备数据和自定义设备数据提供了灵活的访问和处理方法,如聚合计算等。用户能创建自定义路由规则,而该规则可过滤和转换来自 IoT 设备和相关资产数据的传入消息,并触发各种操作,如发送关联的通知、命令或与外部系统进行数据通信。


../../_images/routing_rule.png


以下是一些可以通过路由规则实现的常见用例:

  • 在保存到数据库之前,对传入的遥测或属性进行数据验证和修改。
  • 将遥测数据或属性从设备复制到相关资产,以便聚合遥测数据。例如,来自多个设备的数据可以在相关资产中聚合。
  • 基于设备生命周期事件触发操作。例如,设备在线/离线时创建告警。
  • 触发对外部系统的 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 个使用路由规则的教程,可供参考。