tencent cloud

文档反馈

流程控制

最后更新时间:2024-01-20 17:59:06

    简介

    流程控制的逻辑在常用的编程语言和 DSL 函数中是一样的,区别在于写法不同。如下图所示:
    
    
    

    compose 函数

    函数定义

    组合操作函数,类似于分支代码块的组合能力,可以组合多个操作函数,并按顺序执行,可以结合分支、输出函数使用。

    语法描述

    compose(函数1,函数2, ...)

    参数说明

    参数名称
    参数描述
    参数类型
    是否必须
    参数默认值
    参数取值范围
    可变参,函数
    参数必须为返回类型为 LOG 的函数
    string
    至少一个函数参数
    -
    -

    示例

    示例1:顺序调用函数,先执行 enrich 函数,然后是 fields_set 函数。 原始日志:
    {"status": "500"}
    加工规则:
    //1. enrich函数:使用dict中的数据,对原始日志进行富化,status字段值为500,富化出新字段message,值为Failed。
    //2. fields_Set函数,新增一个字段new,赋值1。
    compose(enrich_dict("{\\"200\\":\\"SUCCESS\\",\\"500\\":\\"FAILED\\"}", "status", output="message"), fields_set("new", 1))
    加工结果:
    //最后结果是三个字段,如下:
    {"new":"1","message":"FAILED","status":"500"}
    示例2 原始日志:
    {"status": "500"}
    加工规则:
    compose(fields_set("new", 1))
    加工结果:
    {"new":"1","status":"500"}
    示例3 原始日志:
    {"condition1": 0,"condition2": 1, "status": "500"}
    加工规则:
    t_if_else(v("condition2"), compose(fields_set("new", 1),log_output("target")), log_output("target2"))
    加工结果,target 输出:
    {"new":"1","condition1":"0","condition2":"1","status":"500"}

    t_if 函数

    函数定义

    对符合条件的日志,进行相应的函数处理,否则不进行任何处理。

    语法描述

    t_if(条件1, 函数1)

    参数说明

    参数名称
    参数描述
    参数类型
    是否必须
    参数默认值
    参数取值范围
    condition
    返回值为 bool 类型的函数表达式
    bool
    -
    -
    function
    返回值为 LOG 类型的函数表达式
    string
    -
    -

    示例

    示例1原始日志:
    {"condition": 1, "status": "500"}
    加工规则:
    t_if(True, fields_set("new", 1))
    加工结果:
    {"new":"1","condition":"1","status":"500"}
    示例2 原始日志:
    //如果 condition 字段的值为真,新增一个字段 new 并赋值1。
    {"condition": 1, "status": "500"}
    加工规则:
    t_if(v("condition"), fields_set("new", 1))
    加工结果:
    {"new":"1","condition":"1","status":"500"}

    t_if_not 函数

    函数定义

    对不符合条件的日志,进行相应的函数处理,否则不进行任何处理。

    语法描述

    t_if_not(条件1, 函数1)

    参数说明

    参数名称
    参数描述
    参数类型
    是否必须
    参数默认值
    参数取值范围
    condition
    返回值为 bool 类型的函数表达式
    bool
    -
    -
    function
    返回值为 LOG 类型的函数表达式
    string
    -
    -

    示例

    原始日志:
    {"condition": 0, "status": "500"}
    加工规则:
    t_if_not(v("condition"), fields_set("new", 1))
    加工结果:
    {"new":"1","condition":"0","status":"500"}

    t_if_else 函数

    函数定义

    基于条件判断,分别进行不同的函数处理。

    语法描述

    t_if_else(条件1, 函数1, 函数2)

    参数说明

    参数名称
    参数描述
    参数类型
    是否必须
    参数默认值
    参数取值范围
    condition
    返回值为 bool 类型的函数表达式
    bool
    -
    -
    function
    返回值为 LOG 类型的函数表达式
    string
    -
    -
    function
    返回值为 LOG 类型的函数表达式
    string
    -
    -

    示例

    原始日志:
    {"condition": 1, "status": "500"}
    加工规则:
    t_if_else(v("condition"), fields_set("new", 1), fields_set("new", 2))
    加工结果:
    {"new":"1","condition":"1","status":"500"}

    t_switch 函数

    函数定义

    基于多分支条件,分别进行不同的函数处理,如果存在不符合所有条件的数据,将被丢弃。

    语法描述

    t_switch(条件1, 函数1, 条件2, 函数2, ...)

    参数说明

    参数名称
    参数描述
    参数类型
    是否必须
    参数默认值
    参数取值范围
    可变参,交替的条件和函数表达式作为参数
    参考 t_if 函数,类似多个 t_if 组合
    -
    -
    -
    -

    示例

    原始日志:
    {"condition1": 0,"condition2": 1, "status": "500"}
    加工规则:
    //condition1字段值为真时,新增字段new并赋值1,由于此处字段值返回假,因此不会新增"new":"1",第二个条件返回真,所以新增了"new":"2"
    t_switch(v("condition1"), fields_set("new", 1), v("condition2"), fields_set("new", 2))
    加工结果:
    {"new":"2","condition1":"0","condition2":"1","status":"500"}
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持