Tous les produits
Search
Centre de documentation

Simple Log Service:Fonctions de contrôle de flux

Dernière mise à jour :Aug 07, 2026

Les fonctions de contrôle de flux déterminent l'exécution des opérations de transformation des données en fonction de conditions. Utilisez ces fonctions pour enchaîner des opérations, appliquer une logique conditionnelle et acheminer les journaux vers différentes destinations.

Fonctions

Fonction

Description

e_compose

Combine plusieurs opérations en une séquence.

  • Exécute les opérations spécifiées sur un journal dans l'ordre et renvoie le résultat.

  • Si une opération supprime le journal, les opérations suivantes sont ignorées.

Compatible avec d'autres fonctions. Pour plus d'informations, consultez la rubrique Transformer des données JSON complexes.

e_if

Évalue les conditions et exécute les opérations correspondantes. Prend en charge plusieurs paires condition-opération.

  • Si une condition est remplie, l'opération correspondante s'exécute. Sinon, la condition suivante est évaluée.

  • Si une opération supprime le journal, les opérations suivantes sont ignorées.

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

Cette règle de transformation équivaut au code Python suivant :

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

Compatible avec d'autres fonctions. Pour plus d'informations, consultez la rubrique Transformer des données JSON complexes.

e_if_else

Évalue une condition et exécute l'une des deux opérations en fonction du résultat.

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

Cette règle de transformation équivaut au code Python suivant :

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

e_switch

Évalue plusieurs paires condition-opération dans l'ordre, à la manière d'une chaîne if-elif-else.

  • Si une condition est remplie, l'opération correspondante s'exécute et le résultat est renvoyé. Sinon, la condition suivante est évaluée.

  • Si aucune condition n'est remplie et que le paramètre default est configuré, l'opération par défaut s'exécute.

  • Si une opération supprime le journal, les opérations suivantes sont ignorées.

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

Cette règle de transformation équivaut au code Python suivant :

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

Compatible avec d'autres fonctions. Pour plus d'informations, consultez la rubrique Distribuer les données vers plusieurs Logstores de destination.

e_compose

Combine plusieurs opérations en un pipeline séquentiel.

  • Syntaxe

    e_compose(Operation 1, Operation 2, ...)
  • Paramètres

    Nom du paramètre

    Type

    Obligatoire

    Description

    Operation 1

    Fonction de traitement global

    Oui

    Une ou plusieurs fonctions de traitement global.

    Operation 2

    Fonction de traitement global

    Non

    Une ou plusieurs fonctions de traitement global.

  • Réponse

    Renvoie le journal après l'exécution de toutes les opérations.

  • Exemples

    Si la valeur du champ content est 123, supprimez les champs age et name et renommez le champ content en ctx.

    • Journal brut

      content: 123
      age: 23
      name: twiss
    • Règle de transformation

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

      ctx: 123
  • Références

    Compatible avec d'autres fonctions. Pour plus d'informations, consultez la rubrique Transformer des données JSON complexes.

e_if

Évalue les conditions et exécute les opérations correspondantes.

  • Syntaxe

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

    Spécifiez les paramètres Condition et Operation par paires.

  • Paramètres

    Nom du paramètre

    Type

    Obligatoire

    Description

    Condition

    Arbitraire

    Oui

    Une expression ou une combinaison d'expressions. Les résultats non booléens sont évalués selon leur véracité.

    Operation

    Fonction de traitement global

    Oui

    Une ou plusieurs fonctions de traitement global.

  • Réponse

    Renvoie le journal après l'exécution des opérations.

  • Exemples

    • Exemple 1 : Faites correspondre une valeur de champ et effectuez une opération.

      Si la valeur du champ result est failed ou failure, définissez le champ __topic__ sur login_failed_event.

      e_if(e_match("result", r"failed|failure"), e_set("__topic__", "login_failed_event"))
    • Exemple 2 : Extrayez des données en fonction d'une valeur de champ.

      Si le champ request_body existe et n'est pas vide, utilisez la fonction e_json pour développer la valeur du champ request_body en plusieurs champs.

      e_if(v("request_body"), e_json("request_body"))
    • Exemple 3 : Effectuez une évaluation avancée.

      Si la valeur du champ valid est failed en minuscules, ignorez le journal.

      e_if(op_eq(str_lower(v("valid")), "failed"), DROP)
    • Exemple 4 : Évaluez plusieurs conditions dans l'ordre.

      e_if(True, e_set("__topic__", "default_login"), 
           e_match("valid", "failed"), e_set("__topic__", "login_failed_event")
        )
  • Références

    Compatible avec d'autres fonctions. Pour plus d'informations, consultez la rubrique Transformer des données JSON complexes.

e_if_else

Évalue une condition et exécute l'une des deux opérations en fonction du résultat.

  • Syntaxe

    e_if_else(Condition, Operation if true, Operation if false)
  • Paramètres

    Nom du paramètre

    Type

    Obligatoire

    Description

    Condition

    Arbitraire

    Oui

    Une expression ou une combinaison d'expressions. Les résultats non booléens sont évalués selon leur véracité.

    Operation if true

    Fonction de traitement global

    Oui

    Une ou plusieurs fonctions de traitement global.

    Operation if false

    Fonction de traitement global

    Oui

    Une ou plusieurs fonctions de traitement global.

  • Réponse

    Renvoie le résultat de l'opération correspondant à la condition évaluée.

  • Exemples

    Si la valeur du champ result est ok ou pass, ou si la valeur du champ status est 200, conservez le journal. Sinon, ignorez-le.

    • Journal brut

      result: ok
      status: 400
      result: Pass
      status: 200
      result: failure
      status: 500
    • Règle de transformation

      e_if_else(
          op_or(e_match("result", r"(?i)ok|pass"), e_search("status== 200")), KEEP, DROP
      )
    • Résultat : les deux premiers journaux sont conservés et le troisième est ignoré.

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

e_switch

Évalue plusieurs paires condition-opération dans l'ordre, à la manière d'une chaîne if-elif-else.

  • Syntaxe

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

    Spécifiez les paramètres Condition et Operation par paires.

  • Paramètres

    Nom du paramètre

    Type

    Obligatoire

    Description

    Condition

    Arbitraire

    Oui

    Une expression ou une combinaison d'expressions. Les résultats non booléens sont évalués selon leur véracité.

    Operation

    Fonction de traitement global

    Oui

    Une ou plusieurs fonctions de traitement global.

    default

    Fonction de traitement global

    Non

    Une ou plusieurs fonctions de traitement global. S'exécute lorsqu'aucune condition n'est remplie.

  • Réponse

    Renvoie le journal après l'exécution de l'opération correspondante.

  • Exemples

    • Si la valeur du champ content est 123, définissez le champ __topic__ sur Number. Si la valeur du champ data est 123, définissez le champ __topic__ sur PRO.

      • Journal brut

        __topic__:  
        age: 18
        content: 123
        name: maki
        data: 342
        __topic__:  
        age: 18
        content: 23
        name: maki
        data: 123
      • Règle de transformation

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

        __topic__: Number
        age: 18
        content: 123
        name: maki
        data: 342
        __topic__: PRO
        age: 18
        content: 23
        name: maki
        data: 123
    • Combinez e_switch avec e_output pour acheminer les journaux correspondant à des règles spécifiques vers différents Logstores. Définissez default=e_drop() pour ignorer les journaux qui ne correspondent à aucune règle. Si le paramètre default n'est pas défini, les journaux non appariés sont envoyés au premier Logstore configuré.

      • Journal brut

        __topic__: sas-log-dns
        test: aliyun
        
        __topic__: aegis-log-network
        test:ecs
        
        __topic__: local-dns
        test:sls
        
        __topic__: aegis-log-login
        test: sls
      • Règle de transformation

        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())
  • Références

    Compatible avec d'autres fonctions. Pour plus d'informations, consultez la rubrique Distribuer les données vers plusieurs Logstores de destination.