表达式过滤器
exprFilter
组件:表达式过滤器。使用 expr (opens new window) 表达式引擎对消息进行过滤。该组件可以通过简单的表达式语法实现复杂的过滤逻辑。
# 配置
字段 | 类型 | 说明 | 默认值 |
---|---|---|---|
expr | string | 表达式,表达式的返回结果必须是bool类型 | 无 |
表达式中可以使用以下内置变量:
id
- 访问消息IDts
- 访问消息时间戳(毫秒)data
- 访问消息原始内容msg
- 访问消息体。如果消息的dataType是JSON类型,可以通过msg.field
方式访问字段,例如:msg.temperature > 50
metadata
- 访问消息元数据,例如metadata.customerName
type
- 访问消息类型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)
上次更新: 2024/12/22, 03:38:12