すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:フロー制御関数

最終更新日:Mar 14, 2026

このトピックでは、フロー制御関数の構文とパラメーターについて説明します。また、関数の使用例も紹介します。

関数

関数

説明

e_compose

複数の操作を組み合わせます。

  • この関数は、一般的に e_if、e_switch、または e_if_else 関数で使用されます。

  • この関数は、ログに対して指定された操作を順番に実行し、その結果を返します。

  • この関数がログを削除する操作を実行した場合、そのログに対する他の操作は実行されなくなります。

この関数は他の関数と組み合わせて使用できます。詳細については、「複雑な JSON データの変換」をご参照ください。

e_if

指定された条件が満たされた場合に操作を実行します。複数の条件と操作のペアを指定できます。

  • 条件が満たされると、その条件に対応する操作が実行されます。条件が満たされない場合、操作は実行されず、次の条件が評価されます。

  • この関数がログを削除する操作を実行した場合、そのログに対する他の操作は実行されなくなります。

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

たとえば、この変換ルールは、次の Python コードの構造に相当します。

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

この関数は他の関数と組み合わせて使用できます。詳細については、「複雑な JSON データの変換」をご参照ください。

e_if_else

指定された条件の評価結果に基づいて操作を実行します。

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

たとえば、この変換ルールは、次の Python コードの構造に対応します。

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

e_switch

条件とそれに関連付けられた操作のセットです。

  • 条件が満たされると、その条件に対応する操作が実行され、結果が返されます。条件が満たされない場合、操作は実行されず、次の条件が評価されます。

  • 指定されたどの条件も満たされず、デフォルトパラメーターが設定されている場合、デフォルトパラメーターで指定された操作が実行され、その結果が返されます。

  • この関数がログを削除する操作を実行した場合、そのログに対する他の操作は実行されなくなります。

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

たとえば、この変換ルールは、次の Python コードの構造に相当します。

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

この関数は他の関数と組み合わせて使用できます。詳細については、「複数の宛先 Logstore へのデータ配信」をご参照ください。

e_compose

複数の操作を組み合わせることができます。

  • 構文

    e_compose(Operation 1, Operation 2, ...)
  • パラメーター

    パラメーター名

    必須

    説明

    操作 1

    グローバル処理関数

    はい

    グローバル処理関数またはグローバル処理関数の組み合わせ。

    操作 2

    グローバル処理関数

    いいえ

    グローバル処理関数またはグローバル処理関数の組み合わせ。

  • レスポンス

    操作後のログが返されます。

  • content フィールドの値が 123 の場合、age フィールドと name フィールドを削除し、content フィールドの値を ctx に変更します。

    • 元のログ

      content: 123
      age: 23
      name: twiss
    • 変換ルール

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

      ctx: 123
  • 参考

    この関数は他の関数と組み合わせて使用できます。詳細については、「複雑な JSON データの変換」をご参照ください。

e_if

システムは判断条件に基づいて操作を実行します。

  • 構文

    e_if(Condition, Operation)
    e_if(Condition 1, Operation 1, Condition 2, Operation 2, ...)
    説明

    Condition パラメーターと Operation パラメーターはペアで指定する必要があります。

  • パラメーター

    パラメーター名

    必須

    説明

    条件

    任意

    はい

    式または式の組み合わせ。結果がブール値でない場合、システムは条件が true か false かを評価します。

    操作

    グローバル処理関数

    はい

    グローバル処理関数またはグローバル処理関数の組み合わせ。

  • レスポンス

    指定された操作が実行されたログが返されます。

    • 例 1:フィールド値を指定された値と照合し、操作を実行します。

      result フィールドの値が failed または failure の場合、__topic__ フィールドを login_failed_event に設定します。

      e_if(e_match("result", r"failed|failure"), e_set("__topic__", "login_failed_event"))
    • 例 2:フィールド値に基づいて評価を行い、操作を実行します。

      request_body フィールドが存在し、かつ空でない場合、フィールド処理関数 e_json を呼び出して request_body フィールドの値を複数の値に展開します。

      e_if(v("request_body"), e_json("request_body"))
    • 例 3:高度な評価を行い、操作を実行します。

      valid フィールドの値が小文字の failed である場合、ログを破棄します。

      e_if(op_eq(str_lower(v("valid")), "failed"), DROP)
    • 例 4:指定された条件に基づいて複数の操作を順番に実行します。

      e_if(True, e_set("__topic__", "default_login"), 
           e_match("valid", "failed"), e_set("__topic__", "login_failed_event")
        )
  • 参考文献

    この関数は他の関数と組み合わせて使用できます。詳細については、「複雑な JSON データの変換」をご参照ください。

e_if_else

条件の結果に基づいて操作を実行します。

  • 構文

    e_if_else(条件, 条件が true と評価された場合の操作 1, 条件が false と評価された場合の操作 2)
  • パラメーター

    パラメーター名

    タイプ

    必須

    説明

    Condition

    Arbitrary

    はい

    式または複数の式の組み合わせです。結果がブール値でない場合、システムはその条件が真か偽かを評価します。

    Real-time operation

    Global processing function

    はい

    グローバル処理関数または複数のグローバル処理関数の組み合わせです。

    Mock operation

    Global processing function

    はい

    グローバル処理関数または複数のグローバル処理関数の組み合わせです。

  • レスポンス

    異なる条件に基づいて操作結果を返します。

  • result フィールドの値が ok または pass であるか、status フィールドの値が 200 の場合、ログを保持します。

    • 元のログ

      result: ok
      status: 400
      result: Pass
      status: 200
      result: failure
      status: 500
    • 変換ルール

      e_if_else(
          op_or(e_match("result", r"(?i)ok|pass"), e_search("status== 200")), KEEP, DROP
      )
    • 結果:最初の 2 つのログは保持され、3 つ目のログは破棄されます。

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

e_switch

複数の条件と操作を組み合わせることができます。

  • 構文

    e_switch(Condition 1, Operation 1, ..., default=None)
    説明

    Condition パラメーターと Operation パラメーターはペアで指定する必要があります。

  • パラメーター

    パラメーター名

    必須

    説明

    条件

    任意

    はい

    式または式の組み合わせ。結果がブール値でない場合、システムは条件が true か false かを評価します。

    操作

    グローバル処理関数

    はい

    グローバル処理関数またはグローバル処理関数の組み合わせ。

    default

    グローバル処理関数

    いいえ

    グローバル処理関数またはグローバル処理関数の組み合わせ。指定されたどの条件も満たされない場合、default パラメーターで指定された操作が実行されます。

  • レスポンス

    指定された操作が実行されたログが返されます。

    • content フィールドの値が 123 の場合、__topic__ フィールドを Number に設定します。data フィールドの値が 123 の場合、__topic__ フィールドを PRO に設定します。

      • 元のログ

        __topic__:  
        age: 18
        content: 123
        name: maki
        data: 342
        __topic__:  
        age: 18
        content: 23
        name: maki
        data: 123
      • 変換ルール

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

        __topic__: Number
        age: 18
        content: 123
        name: maki
        data: 342
        __topic__: PRO
        age: 18
        content: 23
        name: maki
        data: 123
    • e_switch 関数と e_output 関数を組み合わせて、特定のルールに一致するログを異なる Logstore に配信します。`default=e_drop()` が設定されている場合、ルールに一致しないログは破棄され、配信されません。`default` パラメーターを設定しない場合、ルールに一致しないログは、設定された最初の Logstore に配信されます。

      • 元のログ

        __topic__: sas-log-dns
        test: aliyun
        
        __topic__: aegis-log-network
        test:ecs
        
        __topic__: local-dns
        test:sls
        
        __topic__: aegis-log-login
        test: sls
      • 変換ルール

        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())
  • 参照

    この関数は他の関数と組み合わせて使用できます。詳細については、「複数の宛先 Logstore へのデータ配信」をご参照ください。