云日志服务 LTS-流程控制函数:e_if

时间:2025-03-03 16:33:03

e_if

据判断条件执行操作。

  • 函数格式
    e_if(条件, 操作) 
    e_if(条件1, 操作1, 条件2, 操作2, ……)

    函数中条件操作必须成对出现。

  • 参数说明

    参数名称

    参数类型

    是否必填

    说明

    条件

    任意

    表达式或其组合。其结果不是布尔值时,会进行真假判断。

    操作

    全局操作函数

    全局操作函数或其组合。

  • 返回结果

    返回加工处理后的日志。

  • 函数示例
    1. 示例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. 示例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. 示例3:高级判断后再进行操作。

      当valid字段的值为小写failed时,丢弃日志。

      • 测试数据
        {
         "valid":"failed"
        }
      • 加工规则
        e_if(op_eq(str_lower(v("valid")), "failed"),  e_drop())
      • 加工结果:丢弃日志
    4. 示例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
  • 更多参考

    支持和其他函数组合使用。

support.huaweicloud.com/usermanual-lts/lts_07_0165.html