频道条件
了解Echobell中频道条件的工作原理
频道条件
频道条件是强大的表达式,用于确定何时应发送通知。通过在频道上设置条件,您可以根据变量或 HTTP 标头的内容过滤通知,确保订阅者只收到相关警报。
了解条件
条件是计算结果为 true
或 false
的表达式。当频道被触发时:
- 如果条件未设置(为空),通知将发送给所有订阅者。
- 如果条件已设置,只有当表达式计算为
true
时,才会发送通知。
编写条件
条件以表达式形式编写,不需要在模板中使用的 {{}}
包装器。例如:
此条件仅允许在 status
变量等于 "active" 时发送通知。
常见用例
以下是一些您可能使用条件的实际例子:
基本变量检查
仅当 "amount" 变量大于 100 时才通知。
仅当 "message" 变量不为空时才通知。
仅当 "isUrgent" 变量为真时才通知。
检查 HTTP 标头
您可以使用特殊变量 header
访问 HTTP 标头:
仅当请求来自 Mozilla 浏览器时才通知。
仅当内容类型为 JSON 时才通知。
仅当自定义优先级标头设置为"high"时才通知。
复杂条件
您可以使用逻辑运算符组合多个条件:
仅当温度超过 30 或压力超过 100,且状态为"monitoring"时才通知。
仅对生产环境中的关键或高级错误进行通知。
支持的运算符
条件表达式中支持以下运算符:
| 运算符 | 描述 | 示例 |
| ------ | ---------- | ---------------------- | ------ | -------- | --- | ---------- |
| ==
| 等于 | status == "active"
|
| !=
| 不等于 | status != "inactive"
|
| !
| 逻辑非 | !isCompleted
|
| <
| 小于 | count < 10
|
| >
| 大于 | price > 99.99
|
| <=
| 小于或等于 | battery <= 20
|
| >=
| 大于或等于 | confidence >= 0.95
|
| &&
| 逻辑与 | isAdmin && isActive
|
| | |
| 逻辑或 | isError | | isWarning
|
条件变量
当通过 webhook 触发频道时,您可以访问:
- URL 中的查询参数
- POST 请求的JSON 主体
- 通过
header
对象访问的HTTP 标头
对于电子邮件触发器,您可以访问:
from
:电子邮件发件人地址to
:收件人地址subject
:电子邮件主题行text
:纯文本正文内容html
:HTML 正文内容
最佳实践
- 从简单开始 - 从基本条件开始,根据需要增加复杂性
- 彻底测试 - 用各种输入测试您的条件,确保它们按预期工作
- 记录您的条件 - 在您频道的备注字段中添加注释,解释复杂的条件
- 考虑边缘情况 - 考虑缺失变量或意外值的情况
示例
仅针对特定错误发出警报
仅在工作时间内通知
按用户类型过滤
检查请求来源
监控阈值违规
通过有效使用条件,您可以减少通知噪音,确保订阅者只收到对他们有相关性和可操作性的警报。