このトピックでは、フロー制御関数の構文について説明し、パラメーターの説明と関数の例を示します。
関数
関数 | 説明 |
---|---|
e_compose | 操作を組み合わせます。
|
e_if | 条件と操作を組み合わせます。
|
e_if_else | 関連付けられた操作を呼び出す条件を指定します。 |
e_switch | 条件と操作を組み合わせます。
|
e_compose
- 構文
e_compose(Operation 1, Operation 2, ...)
- パラメーター
パラメーター データ型 必須/任意 説明 Operation 1 Global operation function 必須 1 つ以上の他のグローバル操作関数です。 Operation 2 Global operation function 任意 1 つ以上の他のグローバル操作関数です。 - レスポンス
指定された操作が呼び出されたイベントが返されます。
- 例:
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
e_if
- 構文
e_if(Condition, Operation) e_if(Condition 1, Operation 1, Condition 2, Operation 2, ....)
注Condition
パラメーターとOperation
パラメーターはペアである必要があります。 - パラメーター
パラメーター データ型 必須/任意 説明 Condition All 必須 1 つ以上の他の式です。 結果がブール値でない場合は、システムは条件が true か false かを評価します。 Operation Global operation function 任意 1 つ以上の他のグローバル操作関数です。 - レスポンス
指定された操作が呼び出されたイベントが返されます。
- 例
- 例 1:指定されたフィールドが特定の値である場合は、関連する操作を呼び出します。
result
フィールドの値がfailed
またはfailure
の場合は、システムは topic フィールドをlogin_failed_event
に設定します。e_if(e_match("result": r"failed|failure"), e_set("__topic__", "login_failed_event"))
- 例 2:指定されたフィールドが存在し、その値が null でない場合は、データを抽出します。
request_body
フィールドが存在し、その値が null でない場合は、システムは 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") )
- 例 1:指定されたフィールドが特定の値である場合は、関連する操作を呼び出します。
e_if_else
- 構文
e_if_else(Condition, Operation invoked with Condition evaluated to true, Operation invoked with Condition evaluated to false)
- パラメーター
パラメーター データ型 必須/任意 説明 Condition All 必須 1 つ以上の他の式です。 結果がブール値でない場合は、システムは条件が true か false かを評価します。 Operation invoked with Condition evaluated to true Global operation function 必須 1 つ以上の他のグローバル操作関数です。 Operation invoked with Condition evaluated to false Global operation function はい 1 つ以上の他のグローバル操作関数です。 - レスポンス
指定された条件に関連する操作の結果が返されます。
- 例:
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 つのログエントリのみを保持します。result: Ok status: 400
result: Pass status: 200
e_switch
- 構文
e_switch(Condition 1, Operation 1, ..., default=None)
注Condition
とOperation
パラメーターはペアである必要があります。 - パラメーター
パラメーター データ型 必須/任意 説明 Condition All はい 1 つ以上の他の式です。 結果がブール値でない場合は、システムは条件が true か false かを評価します。 Operation Global operation function 必須 1 つ以上の他のグローバル操作関数です。 default Global operation function 任意 1 つ以上の他のデフォルトのグローバル操作関数です。 指定された条件のいずれも true と評価されない場合は、システムはこのパラメーターで指定された操作を呼び出します。 - レスポンス
指定された操作が呼び出されたイベントが返されます。
- 例:
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