baetyl-rule

智能边缘 BIE

  • 产品描述
    • 名词解释
    • 使用限制
    • 产品概述
    • 产品优势
    • 应用场景
  • 配置文件说明
    • baetyl-rule
    • baetyl-remote-object
    • baetyl-function
    • baetyl-broker
  • 快速入门
    • 融合模式节点安装
    • 快速入门指南
    • 离线安装k3s+docker
    • 进程模式节点安装
      • 在linux上安装
      • 在windows上安装
  • 典型实践
    • OPC-UA使用
    • 使用BIE函数计算调用文心一言
    • 边缘规则引擎实战
      • 集成Kuiper流式计算引擎
      • 边缘规则实例
    • 将AI中台模型部署至边缘节点
      • 获取AI中台模型部署包进行应用部署
      • 部署模型SDK至Atlas200DK
      • 模型中心1.0
        • 通过AI中台转换模型并下发至边缘
        • 通过AI中台直接将模型下发至边缘
      • 模型中心2.0
        • 将物体检测模型部署至边缘
        • 将图像分类模型部署至边缘
    • 部署PaddleServing模型
      • 使用BIE下发PaddleOCR模型
      • 制作GPU版本Paddle Serving推理镜像
      • 通过BIE部署Paddle Serving
    • Modbus协议采集温湿度传感器
      • 连接边缘baetyl-broker
      • 使用内置modbus驱动采集数据并进行边缘函数计算
      • 数据从baetyl-broker上传至IoTCore
    • 部署EasyDL模型SDK
      • 部署EasyDL烟火检测模型至ARM64节点
    • 部署EasyEdge模型SDK
      • 进程模式下发python SDK模型
      • 使用EasyEdge模型转换获取边缘模型
      • 部署模型SDK至Windows设备
      • 部署模型SDK至Intel Movidius设备
      • 部署模型SDK至Jetson Xavier
    • 部署自定义容器镜像模型
      • 部署mnist手写数字识别模型
      • 部署物体检测模型
    • video-infer实现边缘视频AI推断
      • 使用Movidius VPU加速边缘视频推断
      • 使用CPU实现边缘视频推断
  • 操作指南
    • 主子用户鉴权
    • 设备管理
      • 设备模拟器
      • 子设备数据云边交互方式
      • 进程模式软网关设备接入指南
      • 子设备数据云边交互方式-v2
      • 视频流管理
        • IPC子设备和驱动
        • 边缘转发RTSP视频流
      • 设备接入
        • 设备模型管理
        • 接入模板
        • 设备管理
        • 子设备绑定
      • 驱动管理
        • 进程模式软网关自定义驱动开发
        • 驱动管理
        • GO语言实现示例
        • 自定义驱动开发指南
      • 不同协议设备接入
        • BACnet设备接入
        • OPC-UA设备接入
        • Modbus 设备接入
        • IEC104设备接入
        • OPC-DA设备接入
    • 节点管理
      • 边缘应用获取云端STS鉴权
      • 进程模式节点
      • 远程MQTT消息下发
      • 节点运行模式说明
      • 节点影子
      • 远程调用
      • 容器模式节点
      • 远程调试
      • 远程SSH边缘节点
      • 边缘节点OpenAPI
      • 证书管理
      • 节点预配
    • 业务编排
      • 单元管理
      • 技能管理
      • 常见技能
    • 应用管理
      • 业务模版
      • 应用部署
        • 应用运行模式与分类说明
        • 函数应用
          • 自定义函数与依赖包解耦下发
          • 从CFC引入多个函数下发
          • 典型使用说明
          • 使用函数调用边缘AI模型
          • 自定义函数与依赖包整体下发
        • 容器应用
          • subpath子路径使用说明
          • workdir工作目录使用说明
          • Job类型容器应用
          • 容器应用状态说明
          • 原生yaml接入使用说明
          • 端口映射说明
          • 容器应用工作负载类型说明
          • Deployment类型容器应用
          • DaemonSet类型容器应用
          • QPS监控
          • emptyDir卷使用说明
          • 边缘服务调用
        • 进程应用
          • 进程应用概述
          • 可执行二进制程序类型进程应用
          • 可执行脚本类型进程应用
      • 配置管理
        • 证书
        • 函数
        • 镜像仓库凭证
        • 配置项
        • 密文
        • 镜像
        • 进程程序包
    • AI加速卡
      • AI加速卡通用资源调度方法
      • 自定义加速卡算力指标采集
      • 华为昇腾
        • 昇腾310资源监控
      • 英伟达
        • GPU资源调度-显存隔离
        • Jetson资源监控
        • GPU资源调度-显存共享
        • Jetson依赖说明
        • NVIDIA GPU资源监控
      • 寒武纪
        • MLU270资源监控
      • 百度昆仑
        • 昆仑芯片资源监控
      • 比特大陆
        • 挂载比特大陆边缘计算盒子tpu资源
        • BM-SE5资源监控
  • 服务等级协议SLA
    • 服务等级协议SLA(V1.0)
  • 备份
    • 进程模式应用
    • 部署通用CPU模型
    • 部署模型SDK至Atlas200DK
    • 适配列表
    • 连接边缘节点本地baetyl-broker
    • 使用自定义modbus应用采集
    • NVIDIA GPU资源管理
    • FAQ
    • NVIDIA Jetson专用模型部署-进程模式
    • 容器模式应用
    • 连接边缘节点本地baetyl-broker服务
    • DaemonSet类型和job类型服务部署
    • 通用CPU模型部署-容器模式
    • NVIDIA Jetson专用模型部署-容器模式
    • 功能发布记录
    • 在BIE控制台部署从AI中台下载的模型
    • EasyEdge概述
    • Nvidia_Jetson
      • 使用NVIDIA官方镜像运行模型-容器模式
      • 二进制程序运行模型-进程模式
      • 使用edgekit镜像运行模型-容器模式
    • 下载专区
      • 相关资源下载
  • 产品定价
    • 产品定价
所有文档
menu
没有找到结果,请重新输入

智能边缘 BIE

  • 产品描述
    • 名词解释
    • 使用限制
    • 产品概述
    • 产品优势
    • 应用场景
  • 配置文件说明
    • baetyl-rule
    • baetyl-remote-object
    • baetyl-function
    • baetyl-broker
  • 快速入门
    • 融合模式节点安装
    • 快速入门指南
    • 离线安装k3s+docker
    • 进程模式节点安装
      • 在linux上安装
      • 在windows上安装
  • 典型实践
    • OPC-UA使用
    • 使用BIE函数计算调用文心一言
    • 边缘规则引擎实战
      • 集成Kuiper流式计算引擎
      • 边缘规则实例
    • 将AI中台模型部署至边缘节点
      • 获取AI中台模型部署包进行应用部署
      • 部署模型SDK至Atlas200DK
      • 模型中心1.0
        • 通过AI中台转换模型并下发至边缘
        • 通过AI中台直接将模型下发至边缘
      • 模型中心2.0
        • 将物体检测模型部署至边缘
        • 将图像分类模型部署至边缘
    • 部署PaddleServing模型
      • 使用BIE下发PaddleOCR模型
      • 制作GPU版本Paddle Serving推理镜像
      • 通过BIE部署Paddle Serving
    • Modbus协议采集温湿度传感器
      • 连接边缘baetyl-broker
      • 使用内置modbus驱动采集数据并进行边缘函数计算
      • 数据从baetyl-broker上传至IoTCore
    • 部署EasyDL模型SDK
      • 部署EasyDL烟火检测模型至ARM64节点
    • 部署EasyEdge模型SDK
      • 进程模式下发python SDK模型
      • 使用EasyEdge模型转换获取边缘模型
      • 部署模型SDK至Windows设备
      • 部署模型SDK至Intel Movidius设备
      • 部署模型SDK至Jetson Xavier
    • 部署自定义容器镜像模型
      • 部署mnist手写数字识别模型
      • 部署物体检测模型
    • video-infer实现边缘视频AI推断
      • 使用Movidius VPU加速边缘视频推断
      • 使用CPU实现边缘视频推断
  • 操作指南
    • 主子用户鉴权
    • 设备管理
      • 设备模拟器
      • 子设备数据云边交互方式
      • 进程模式软网关设备接入指南
      • 子设备数据云边交互方式-v2
      • 视频流管理
        • IPC子设备和驱动
        • 边缘转发RTSP视频流
      • 设备接入
        • 设备模型管理
        • 接入模板
        • 设备管理
        • 子设备绑定
      • 驱动管理
        • 进程模式软网关自定义驱动开发
        • 驱动管理
        • GO语言实现示例
        • 自定义驱动开发指南
      • 不同协议设备接入
        • BACnet设备接入
        • OPC-UA设备接入
        • Modbus 设备接入
        • IEC104设备接入
        • OPC-DA设备接入
    • 节点管理
      • 边缘应用获取云端STS鉴权
      • 进程模式节点
      • 远程MQTT消息下发
      • 节点运行模式说明
      • 节点影子
      • 远程调用
      • 容器模式节点
      • 远程调试
      • 远程SSH边缘节点
      • 边缘节点OpenAPI
      • 证书管理
      • 节点预配
    • 业务编排
      • 单元管理
      • 技能管理
      • 常见技能
    • 应用管理
      • 业务模版
      • 应用部署
        • 应用运行模式与分类说明
        • 函数应用
          • 自定义函数与依赖包解耦下发
          • 从CFC引入多个函数下发
          • 典型使用说明
          • 使用函数调用边缘AI模型
          • 自定义函数与依赖包整体下发
        • 容器应用
          • subpath子路径使用说明
          • workdir工作目录使用说明
          • Job类型容器应用
          • 容器应用状态说明
          • 原生yaml接入使用说明
          • 端口映射说明
          • 容器应用工作负载类型说明
          • Deployment类型容器应用
          • DaemonSet类型容器应用
          • QPS监控
          • emptyDir卷使用说明
          • 边缘服务调用
        • 进程应用
          • 进程应用概述
          • 可执行二进制程序类型进程应用
          • 可执行脚本类型进程应用
      • 配置管理
        • 证书
        • 函数
        • 镜像仓库凭证
        • 配置项
        • 密文
        • 镜像
        • 进程程序包
    • AI加速卡
      • AI加速卡通用资源调度方法
      • 自定义加速卡算力指标采集
      • 华为昇腾
        • 昇腾310资源监控
      • 英伟达
        • GPU资源调度-显存隔离
        • Jetson资源监控
        • GPU资源调度-显存共享
        • Jetson依赖说明
        • NVIDIA GPU资源监控
      • 寒武纪
        • MLU270资源监控
      • 百度昆仑
        • 昆仑芯片资源监控
      • 比特大陆
        • 挂载比特大陆边缘计算盒子tpu资源
        • BM-SE5资源监控
  • 服务等级协议SLA
    • 服务等级协议SLA(V1.0)
  • 备份
    • 进程模式应用
    • 部署通用CPU模型
    • 部署模型SDK至Atlas200DK
    • 适配列表
    • 连接边缘节点本地baetyl-broker
    • 使用自定义modbus应用采集
    • NVIDIA GPU资源管理
    • FAQ
    • NVIDIA Jetson专用模型部署-进程模式
    • 容器模式应用
    • 连接边缘节点本地baetyl-broker服务
    • DaemonSet类型和job类型服务部署
    • 通用CPU模型部署-容器模式
    • NVIDIA Jetson专用模型部署-容器模式
    • 功能发布记录
    • 在BIE控制台部署从AI中台下载的模型
    • EasyEdge概述
    • Nvidia_Jetson
      • 使用NVIDIA官方镜像运行模型-容器模式
      • 二进制程序运行模型-进程模式
      • 使用edgekit镜像运行模型-容器模式
    • 下载专区
      • 相关资源下载
  • 产品定价
    • 产品定价
  • 文档中心
  • arrow
  • 智能边缘BIE
  • arrow
  • 配置文件说明
  • arrow
  • baetyl-rule
本页目录
  • 简介
  • 配置
  • Demo示例
  • 纯消息流转
  • 消息流转+函数计算
  • 更新节点影子

baetyl-rule

更新时间:2025-08-21

简介

baetyl-rule 可以实现 baetyl 框架端侧的消息流转,在 baetyl-broker (端侧消息中心)、函数服务、Iot Hub (云端 mqtt broker),http服务,消息队列kafka,rabbit mq,对象存储进行消息交换。

支持以下的消息流转方式:

消息源:

  • 订阅来自MQTT的消息
  • 接收来自HTTP的请求

消息处理:

  • 调用函数计算(此步骤可以省略)

消息目的地:

  • 将处理后的结果发送至mqtt
  • 发送至http服务
  • 发送至消息队列kafka
  • 发送至rabbit mq
  • 解析消息内容,发送本地文件至s3对象存储

其中 baetyl 支持 Python、Node、SQL 等多种运行时,可以配置相关的脚本函数对消息进行过滤、处理、转换以及丰富等。

配置

baetyl-rule 的全量配置文件如下,并对配置字段做了相应解释:

  • mqtt配置
YAML
1clients:             # 消息节点,可以从消息节点订阅消息,也可以发送至消息节点
2  - name: iothub     # 名称
3    kind: mqtt       # mqtt 类型
4    address: 'ssl://u7isgiz.mqtt.iot.bj.baidubce.com:1884' # 地址
5    username: test                                         # 用户名 (可选)
6    password: test                                         # 密码 (可选)
7    ca: /var/lib/baetyl/testcert/ca.pem          # 连接节点的 CA(可选)
8    key: /var/lib/baetyl/testcert/client.key     # 连接节点的私钥(可选)
9    cert: /var/lib/baetyl/testcert/client.pem    # 连接节点的公钥(可选)
10    insecureSkipVerify: true                               # 是否跳过服务端证书校验
11rules:                     # 消息规则
12  - name: rule1            # 规则名称,必须保持唯一
13    source:                # 消息源
14      topic: broker/topic1 # 消息主题
15      qos: 1               # 消息质量
16    target:                # 消息目的地
17      client: iothub       # 消息节点,如果不设置,默认为 baetyl-broker
18      topic: iothub/topic2 # 消息主题
19      qos: 0               # 消息质量
20    function:              # 处理函数
21      name: node85         # 函数名称
  • http配置
YAML
1clients:
2  - name: http-server      # 名称
3    kind: http-server      # http-server类型(仅可配置为source)
4    port: 8090             # http server服务端口,下面的tls可选,不配置时,默认为http服务
5    ca: /var/lib/baetyl/testcert/ca.pem # 服务器的 CA
6    key: /var/lib/baetyl/testcert/client.key # 服务器的私钥
7    cert: /var/lib/baetyl/testcert/client.pem # 服务器的公钥
8    insecureSkipVerify: true # 是否跳过服务端证书校验
9  - name: http-client        # 名称
10    kind: http               # http类型(仅可配置为target)
11    address: 'http://127.0.0.1:8554'  # http服务地址,如果是https,请配置证书,否则默认使用系统证书
12    ca: /var/lib/baetyl/testcert/ca.pem # 连接节点的 CA
13    key: /var/lib/baetyl/testcert/client.key # 连接节点的私钥
14    cert: /var/lib/baetyl/testcert/client.pem # 连接节点的公钥
15    insecureSkipVerify: true # 是否跳过服务端证书校验
16rules:
17  - name: rule2            # 规则名称,必须保持唯一
18    source:                # 消息源
19      client: http-server  # 指定为http-server的消息源
20    target:                # 消息目的地
21      client: http-client  # 与clients中配置的http服务名称一致
22      path: /nodes/test    # http访问路径
23      method: PUT          # http消息类型,支持GET/POST/PUT/DELETE
  • s3对象存储配置
YAML
1clients:
2  - name: minio                # s3 client名称
3    kind: s3                   # 当前,仅支持作为target
4    address: '127.0.0.1:8686'  # s3服务地址
5    bucket: 'bie-upload'       # s3指定bucket
6    ak: 'test'                 # 连接的ak
7    sk: 'test'                 # 连接的sk
8    token: 'test'              # 连接的token(可选)
9    region: us-east-1          # 区域(可选)
10rules:
11  - name: rule3           
12    source:
13      topic: shadow/put 
14      qos: 0  
15    target:                
16      client: minio        # 与clients中配置的s3服务名称一致

s3与消息队列的配置实例中,source都使用了baetyl-broker进行展示。

在BIE私有化中,提供sts鉴权,同时,你可以直接在target中指定为baetyl-sts,无需自行设置s3连接信息,文件会自动上传到namespace/nodename/路径下。

使用s3上传文件,需要保证请求mqtt或者http发送的消息内容为application/json,内容格式如下:

JSON
1{
2    "type":"UPLOAD",     // 定值,表示进行s3上传
3    "content":{
4        "localPath":"/Users/hanpengfei01/Desktop/ingress.txt",  // 需要上传文件的本地文件地址,如果是容器模式,请确保该文件目录已挂载
5        "remotePath":"ingress.txt" // 云端的上传文件地址
6    }
7}
  • kafka, rabbit mq消息队列配置
YAML
1clients:
2  - name: mq-target              # rabbit-mq client名称
3    kind: rabbit-mq              # 当前,仅支持作为target
4    address: '127.0.0.1:5672'    # amqp服务地址
5    username: test               # 用户名
6    password: test               # 密码
7  - name: kafka-target           # kafka client名称
8    kind: kafka                  # 当前,仅能作为target使用
9    address: ['127.0.0.1:9092']  # broker地址数组
10    saslType: plain              # sasl鉴权类型,当前支持plain,scram256,scram512,置空则不开启鉴权(可选)
11    username: test                               # 用户名 (可选)
12    password: test                               # 密码 (可选)
13    ca: /var/lib/baetyl/testcert/ca.pem          # 连接节点的 CA(可选)
14    key: /var/lib/baetyl/testcert/client.key     # 连接节点的私钥(可选)
15    cert: /var/lib/baetyl/testcert/client.pem    # 连接节点的公钥(可选)
16rules:
17  - name: rule4            
18    source:
19      topic: shadow/put 
20      qos: 0  
21    target:
22      client: mq-target           # rabbit-mq client名称
23      exchange: bie_events        # exchange名称
24      routingKey: my_routing_key  # routingKey名称
25  - name: rule5
26    source:
27      topic: shadow/put 
28      qos: 0
29    target:
30      client: kafka-target        # kafka client名称
31      topic: bie-test             # kafka topic

说明:

  • baetyl-rule 后台默认添加边缘系统应用baetyl-broker作为一个消息节点
  • 当一条rule规则的source/target 未配置 client 字段时,会默认使用 baetyl-broker 作为其消息节点
  • 当一个client消息节点的kind为http 时,若address 连接地址使用https,默认使用baetyl-core签发的系统证书
  • http类型消息节点只能作为一条rule的target,并且http请求的Content-Type为application/json
  • http-server类型仅可作为rule的source,且该类型仅可存在一个配置,用户调用时,使用POST请求访问地址http://{ip}:{port}/rules/{ruleName} 来触发调用

Demo示例

纯消息流转

下面示例定义了两条规则

  • edge2iotcore:将边缘侧edgetopic1的消息,转发至云端iotcore,mqtt小的qos=1
  • edge2edge:将边缘侧edgetopic1的消息,转发至边缘侧edgetopic2,mqtt消息的qos=1
YAML
1clients:
2  - name: iotcore
3    kind: mqtt
4    address: 'tcp://aeccdhl.iot.gz.baidubce.com:1883'
5    username: xxxcdhl/device6
6    password: lfWjOxxxmvXPpM
7rules:
8  - name: edge2iotcore
9    source:
10      topic: edgetopic1
11      qos: 1
12    target:
13      client: iotcore
14      topic: topic1
15      qos: 1
16  - name: edge2edge
17    source:
18      topic: edgetopic1
19      qos: 1
20    target:
21      topic: edgetopic2
22      qos: 1
23
24logger:
25  level: debug
26  encoding: console

消息流转+函数计算

下面示例定义了3条规则

  • rule1:订阅broker/topic1消息,将消息作为函数py-demo1/func1的输入,将函数计算结果输出至broker/topic2
  • rule2:订阅broker/topic3消息,将消息作为函数py-demo1/func2的输入,将函数计算结果通过http POST请求发送至http://10.68.23.42:8554/rule/result
YAML
1clients:
2  - name: http-server
3    kind: http
4    address: 'http://10.68.23.42:8554'
5rules:
6  - name: rule1
7    source:
8      topic: broker/topic1
9    target:
10      topic: broker/topic2
11    function:
12      name: py-demo1/func1
13  - name: rule2
14    source:
15      topic: broker/topic3
16    target:
17      client: http-server
18      path: /rule/result
19      method: POST
20    function:
21      name: py-demo1/func2
22logger:
23  level: debug
24  encoding: console

更新节点影子

节点影子相关说明可以参考该章节节点影子。 但是由于节点影子的更新仅提供了https接口,因此,可以通过baetyl-rule来路由mqtt消息,从而达成通过mqtt消息更新节点影子的需求。

在云端设置节点影子:

da27a9c42b4f1d5a9dee77b86a19e1a1.png

baetyl-rule参考配置如下:

YAML
1clients:
2  - name: core
3    kind: http
4    address: 'https://baetyl-core.baetyl-edge-system'
5rules:
6  - name: shadow
7    source:
8      topic: shadow/put
9      qos: 0
10    target:
11      client: core
12      path: /node/properties
13      method: PUT
14logger:
15  level: debug
16  encoding: console

使用mqtt box连接到mqtt broker后,向定义的topic shadow/put 中发送需要修改的值。

6bf20f92d12120866b34c155593c1f1f.png

回到云端,可以看到,该节点影子值已被修改。

2fd6d5f02a9169d3c3386c0d08f7cb2d.png

上一篇
产品描述
下一篇
baetyl-remote-object