Todos los productos
Search
Centro de documentos

Simple Log Service:Funciones de control de flujo

Última actualización: Sep 02, 2026

Las funciones de control de flujo determinan cómo se ejecutan las operaciones de transformación de datos según ciertas condiciones. Utilice estas funciones para componer operaciones secuenciales, aplicar lógica condicional y enrutar registros a distintos destinos.

Funciones

Función

Descripción

e_compose

Combina varias operaciones en una secuencia.

  • Ejecuta las operaciones especificadas sobre un registro en secuencia y devuelve el resultado.

  • Si una operación elimina el registro, se omiten las operaciones posteriores.

Admite la combinación con otras funciones. Para obtener más información, consulte Transform complex JSON data.

e_if

Evalúa condiciones y ejecuta las operaciones correspondientes. Admite varios pares de condición-operación.

  • Si se cumple una condición, se ejecuta la operación correspondiente. De lo contrario, se evalúa la siguiente condición.

  • Si una operación elimina el registro, se omiten las operaciones posteriores.

e_if(
    e_has("a"), e_output("target-a"), 
    e_has("b"), e_output("target-b"),
)

Esta regla de transformación equivale al siguiente código de Python:

if e_has("a"):
    e_output("target-a")
if e_has("b"):
    e_output("target-b")

Admite la combinación con otras funciones. Para obtener más información, consulte Transform complex JSON data.

e_if_else

Evalúa una condición y ejecuta una de dos operaciones según el resultado.

e_if_else(e_has("a"), e_output("target-a"), e_output("target-b"))

Esta regla de transformación equivale al siguiente código de Python:

if e_has("a"):
    e_output("target-a")
else:
    e_output("target-b")

e_switch

Evalúa varios pares de condición-operación en secuencia, de forma similar a una cadena if-elif-else.

  • Si se cumple una condición, se ejecuta la operación correspondiente y se devuelve el resultado. De lo contrario, se evalúa la siguiente condición.

  • Si no se cumple ninguna condición y el parámetro predeterminado está configurado, se ejecuta la operación predeterminada.

  • Si una operación elimina el registro, se omiten las operaciones posteriores.

e_switch(
    e_has("a"), e_output("target-a"), 
    e_has("b"), e_output("target-b"),
    default=e_output("target-default"), 
)

Esta regla de transformación equivale al siguiente código de Python:

if e_has("a"):
    e_output("target-a")
elif e_has("b"):
    e_output("target-b")
else:
    e_output("target-default")

Admite la combinación con otras funciones. Para obtener más información, consulte Distribute data to multiple destination Logstores.

e_compose

Combina varias operaciones en una canalización secuencial.

  • Sintaxis

    e_compose(Operation 1, Operation 2, ...)
  • Parámetros

    Nombre del parámetro

    Tipo

    Obligatorio

    Descripción

    Operation 1

    Función de procesamiento global

    Sí

    Una o más funciones de procesamiento global.

    Operation 2

    Función de procesamiento global

    No

    Una o más funciones de procesamiento global.

  • Respuesta

    Devuelve el registro después de ejecutar todas las operaciones.

  • Ejemplos

    Si el valor del campo content es 123, elimine los campos age y name, y cambie el nombre del campo content a ctx.

    • Registro sin procesar

      content: 123
      age: 23
      name: twiss
    • Regla de transformación

      e_if(
          e_search("content==123"),
          e_compose(e_drop_fields("age|name"), e_rename("content", "ctx")),
      )
    • Resultado

      ctx: 123
  • Referencias

    Admite la combinación con otras funciones. Para obtener más información, consulte Transform complex JSON data.

e_if

Evalúa condiciones y ejecuta las operaciones correspondientes.

  • Sintaxis

    e_if(Condition, Operation)
    e_if(Condition 1, Operation 1, Condition 2, Operation 2, ...)
    Nota

    Especifique los parámetros Condition y Operation en pares.

  • Parámetros

    Nombre del parámetro

    Tipo

    Obligatorio

    Descripción

    Condition

    Arbitrario

    Sí

    Una expresión o una combinación de expresiones. Los resultados no booleanos se evalúan por su valor de verdad.

    Operation

    Función de procesamiento global

    Sí

    Una o más funciones de procesamiento global.

  • Respuesta

    Devuelve el registro después de ejecutar las operaciones.

  • Ejemplos

    • Ejemplo 1: Coincidencia con un valor de campo y ejecución de una operación.

      Si el valor del campo result es failed o failure, establezca el campo __topic__ en login_failed_event.

      e_if(e_match("result", r"failed|failure"), e_set("__topic__", "login_failed_event"))
    • Ejemplo 2: Extracción de datos según un valor de campo.

      Si el campo request_body existe y no está vacío, utilice la función e_json para expandir el valor del campo request_body en varios campos.

      e_if(v("request_body"), e_json("request_body"))
    • Ejemplo 3: Ejecución de una evaluación avanzada.

      Si el valor del campo valid es failed en minúsculas, descarte el registro.

      e_if(op_eq(str_lower(v("valid")), "failed"), DROP)
    • Ejemplo 4: Evaluación de varias condiciones en secuencia.

      e_if(True, e_set("__topic__", "default_login"), 
           e_match("valid", "failed"), e_set("__topic__", "login_failed_event")
        )
  • Referencias

    Admite la combinación con otras funciones. Para obtener más información, consulte Transform complex JSON data.

e_if_else

Evalúa una condición y ejecuta una de dos operaciones según el resultado.

  • Sintaxis

    e_if_else(Condition, Operation if true, Operation if false)
  • Parámetros

    Nombre del parámetro

    Tipo

    Obligatorio

    Descripción

    Condition

    Arbitrario

    Sí

    Una expresión o una combinación de expresiones. Los resultados no booleanos se evalúan por su valor de verdad.

    Operation if true

    Función de procesamiento global

    Sí

    Una o más funciones de procesamiento global.

    Operation if false

    Función de procesamiento global

    Sí

    Una o más funciones de procesamiento global.

  • Respuesta

    Devuelve el resultado de la operación que corresponde a la condición evaluada.

  • Ejemplos

    Si el valor del campo result es ok o pass, o si el valor del campo status es 200, conserve el registro. De lo contrario, descártelo.

    • Registro sin procesar

      result: ok
      status: 400
      result: Pass
      status: 200
      result: failure
      status: 500
    • Regla de transformación

      e_if_else(
          op_or(e_match("result", r"(?i)ok|pass"), e_search("status== 200")), KEEP, DROP
      )
    • Resultado: Se conservan los dos primeros registros y se descarta el tercero.

      result: ok
      status: 400
      result: Pass
      status: 200

e_switch

Evalúa varios pares de condición-operación en secuencia, de forma similar a una cadena if-elif-else.

  • Sintaxis

    e_switch(Condition 1, Operation 1, ..., default=None)
    Nota

    Especifique los parámetros Condition y Operation en pares.

  • Parámetros

    Nombre del parámetro

    Tipo

    Obligatorio

    Descripción

    Condition

    Arbitrario

    Sí

    Una expresión o una combinación de expresiones. Los resultados no booleanos se evalúan por su valor de verdad.

    Operation

    Función de procesamiento global

    Sí

    Una o más funciones de procesamiento global.

    default

    Función de procesamiento global

    No

    Una o más funciones de procesamiento global. Se ejecuta cuando no se cumple ninguna condición.

  • Respuesta

    Devuelve el registro después de ejecutar la operación coincidente.

  • Ejemplos

    • Si el valor del campo content es 123, establezca el campo __topic__ en Number. Si el valor del campo data es 123, establezca el campo __topic__ en PRO.

      • Registro sin procesar

        __topic__:  
        age: 18
        content: 123
        name: maki
        data: 342
        __topic__:  
        age: 18
        content: 23
        name: maki
        data: 123
      • Regla de transformación

        e_switch(
            e_search("content==123"),
            e_set("__topic__", "Number", mode="overwrite"),
            e_search("data==123"),
            e_set("__topic__", "PRO", mode="overwrite"),
        )
      • Resultado

        __topic__: Number
        age: 18
        content: 123
        name: maki
        data: 342
        __topic__: PRO
        age: 18
        content: 23
        name: maki
        data: 123
    • Combine e_switch con e_output para enrutar los registros que coinciden con reglas específicas a distintos logstores. Establezca default=e_drop() para descartar los registros que no coincidan con ninguna regla. Si no se configura el parámetro default, los registros sin coincidencia se envían al primer logstore configurado.

      • Registro sin procesar

        __topic__: sas-log-dns
        test: aliyun
        
        __topic__: aegis-log-network
        test:ecs
        
        __topic__: local-dns
        test:sls
        
        __topic__: aegis-log-login
        test: sls
      • Regla de transformación

        e_switch(e_match("__topic__","sas-log-dns"),e_output(name="target1"),
        e_match("__topic__","sas-log-process"),e_output(name="target2"),
        e_match("__topic__","local-dns"),e_output(name="target3"),
        e_match("__topic__","aegis-log-network"),e_output(name="target4"),
        e_match("__topic__","aegis-log-login"),e_output(name="target5"),
        default=e_drop())
  • Referencias

    Admite la combinación con otras funciones. Para obtener más información, consulte Distribute data to multiple destination Logstores.