表达式过滤器
exprFilter组件:表达式过滤器。使用 expr (opens new window) 表达式引擎对消息进行过滤。该组件可以通过简单的表达式语法实现复杂的过滤逻辑。
# 配置
| 字段 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| expr | string | 表达式,表达式的返回结果必须是bool类型 | 无 |
表达式中可以使用以下内置变量:
${id}- 访问消息ID${ts}- 访问消息时间戳(毫秒)${data}- 访问消息原始内容${msg}- 访问消息体。如果消息的dataType是JSON类型,可以通过${msg.field}方式访问字段,例如:${msg.temperature} > 50${metadata}- 访问消息元数据,例如${metadata.customerName}${msgType}- 访问消息类型${dataType}- 访问数据类型
表达式例子:
- ${msg.temperature} > 50
- ${msg.temperature} > 50 && ${metadata.customerName} == 'rulego'
- upper(${metadata.customerName}[:4]) == 'GO'
- replace(toJSON(${msg}),'name','productName')
更多expr表达式语法参考: expr (opens new window) 更多变量使用方法参考:组件配置变量
# Relation Type
- True: 把消息发送到
True链 - False: 把消息发送到
False链 - Failure: 执行失败,把消息发送到
Failure链
# 执行结果
该组件不会改变msg、metadata和msgType内容。
# 配置示例
{
"id": "s1",
"type": "exprFilter",
"name": "表达式过滤器",
"configuration": {
"expr": "${msg.temperature} > 50"
}
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
在 GitHub 上编辑此页 (opens new window)
上次更新: 2025/09/02, 11:02:23