云日志服务 LTS-流程控制函数:e_if
e_if
据判断条件执行操作。
- 函数格式
e_if(条件, 操作) e_if(条件1, 操作1, 条件2, 操作2, ……)
函数中条件和操作必须成对出现。
- 参数说明
参数名称
参数类型
是否必填
说明
条件
任意
是
表达式或其组合。其结果不是布尔值时,会进行真假判断。
操作
全局操作函数
否
全局操作函数或其组合。
- 返回结果
返回加工处理后的日志。
- 函数示例
- 示例1:字段值匹配后再进行操作。
result字段值为failed或failure时,设置__topic__字段的值为login_failed_event。
- 测试数据
{ "result": "failed" }
- 加工规则
e_if(e_match("result", r"failed|failure"), e_set("__topic__", "login_failed_event"))
- 加工结果
result: failed __topic__: login_failed_event
- 测试数据
- 示例2:根据字段值判断后再提取数据。
当request_body字段存在且值非空时,调用字段类操作函数JSON将request_body字段展开成多个值。
- 测试数据
{ "request_body": {\"k1": 100, \"k2\": 200} }
- 加工规则
e_if(v("request_body"), e_json("request_body"))
- 加工结果
request_body: {"k1": 100, "k2": 200} k1: 100 k2: 200
- 测试数据
- 示例3:高级判断后再进行操作。
- 测试数据
{ "valid":"failed" }
- 加工规则
e_if(op_eq(str_lower(v("valid")), "failed"), e_drop())
- 加工结果:丢弃日志
- 测试数据
- 示例4:多个条件按顺序操作。
- 测试数据
{ "valid":"failed" }
- 加工规则
e_if(True, e_set("__topic__", "default_login"), e_match("valid", "failed"), e_set("__topic__", "login_failed_event"))
- 加工结果
valid: failed __topic__:login_failed_event
- 测试数据
- 示例1:字段值匹配后再进行操作。
- 更多参考
支持和其他函数组合使用。