式ビルダーを使用する

以下でサポートされています。

式ビルダーを使用すると、JSON 結果を解析して変更し、後続のアクションで使用できます。式ビルダーは、さまざまな動的変換関数を生成します。これらの関数を連結してプレビューし、テストできます。これにより、未加工のアクション結果を変換して解析するためのインタラクティブなエクスペリエンスが提供されます。

ハンドブック アクションでパラメータのプレースホルダを選択すると、JSON の結果を使用できます。これらの結果は、アクションによって返された包括的な情報を提供します。この情報は、後続のハンドブック アクションとフローで使用できます。詳細については、式ビルダーのユースケースをご覧ください。

Expression Builder を表示する

この例は、潜在的なデータを示すものであり、リアルタイムの結果を反映したものではありません。実際のデータは異なる場合があり、フィールドの数が異なる場合があります。アナリストが実行時に返される追加のフィールドを把握している場合は、対応するキーパスを [構文] フィールドに入力できます。

関数

次のパイプ関数がサポートされています。

  • First (x): 配列の最初の X 個の要素を返します。
    例: alerts | First(2)alerts[{"id": "A"}, {"id": "B"}, {"id": "C"}] の場合、[{"id": "A"}, {"id": "B"}] を返します)
  • Last (x): 配列の最後の X 個の要素を返します。
    例: alerts | Last(1)alerts[{"id": "A"}, {"id": "B"}, {"id": "C"}] の場合、[{"id": "C"}] を返します)
  • Min(KeyPath): 配列から最小値のアイテムを返します。keyPath パラメータが指定されている場合、指定されたパスで最小値を持つオブジェクトを返します。
    例: alerts | Min("score")alertsscore フィールドを含むオブジェクトのリストが含まれている場合、スコアが最も低いオブジェクトを返します)
  • Max(KeyPath): 配列から最大値のアイテムを返します。keyPath パラメータが指定されている場合は、指定されたパスで最大値を持つオブジェクトを返します。
    例: alerts | Max("score")alertsscore フィールドを含むオブジェクトのリストが含まれている場合、スコアが最も高いオブジェクトを返します)
  • フィルタ(ConditionKey、Operator、Value): オブジェクトの配列をフィルタし、指定されたフィールドの条件に一致するオブジェクトのみを返します。
    • ConditionKey: 条件に対して評価する各オブジェクトのフィールド。
    • 演算子: 条件に使用する演算子。
      • 文字列入力の場合: =!=innot in
      • 数値/日付の入力の場合: =!=>>= < <=
  • : 条件で確認する値。
    例: alerts | Filter("severity", "=", "HIGH")severity フィールドが「HIGH」のアラートをすべて返します)
  • DateFormat ("pattern") - 指定されたパターン(パターンはパラメータとして指定)で日付を YYYY-MM-DDThh:mm:ssZ 形式に設定します。
    例: timestamp_field | DateFormat("yyyy/MM/ddTHH:mm:ss")timestamp_field が「2024/07/20T10:00:00Z」の場合、「2024-07-20 10:00:00」を返します)
  • Count (): 入力配列内のアイテム数を返します。
    例: alerts | Count()alerts が 4 つの要素を持つ配列の場合、4 を返します)
  • OrderBy ("keyPath", "direction"): 指定されたキーパスの値に基づいてオブジェクトの配列を並べ替えます。
    例: alerts | OrderBy("score", "DESC")alerts 配列を score で降順に並べ替えます)
  • toLower (): 入力を小文字に変換します。
    例: status_field | toLower()status_field が「OPEN」の場合、「open」を返します)
  • toUpper (): 入力を大文字に変換します。
    例: severity_field | toUpper()severity_field が「high」の場合、「HIGH」を返します)
  • Replace ("x", "y"): 文字列内の部分文字列を別の文字列に置き換えます。
    例: message_field | Replace("World", "Universe")message_field が「Hello World」の場合、「Hello Universe」を返します)
  • Distinct (): 配列から重複する値を削除します。オブジェクトの配列の場合、重複するオブジェクトを特定するためにディープ比較を行います。
    例: [10, 20, 30, 20, 40] | Distinct()[10, 20, 30, 40] を返します)
  • getByIndex ("index"): 指定されたインデックスまたはインデックスのリストで配列のアイテムを取得します。
    例: alerts | getByIndex("0")alerts 配列の最初の要素を返します)
    例: alerts | getByIndex("0,2")alerts 配列の最初と 3 番目の要素を返します)
  • split ("delimiter"): 指定された区切り文字を使用して、文字列を部分文字列の配列に分割します。
    例: "tag1,tag2,tag3" | split(",")["tag1", "tag2", "tag3"] を返します)
  • join ("delimiter"): 指定された区切り文字を使用して、文字列の配列を 1 つの文字列に連結します。
    例: ["malware", "critical"] | join(" & ")(「malware & critical」を返します)
  • trim (): 文字列の先頭と末尾の空白を削除します。
    例: " hello world " | trim()(「hello world」を返します)
  • trimChars ("characters"): 文字列の先頭と末尾から指定した文字を削除します。先頭と末尾の空白文字は、明示的に指定されていない場合でも常に削除されます。
    例: "--TEST--ABC--" | trimChars("-")(「TEST--ABC」を返します)
  • substring (start, end): 指定された開始インデックスとオプションの終了インデックスを使用して、文字列から部分文字列を抽出します。
    例: "Hello World" | substring(0, 5)(「Hello」を返します)
    例: "Hello World" | substring(6)(「World」を返します)
  • incrementValue(値): 指定した量だけ数値を増やします。金額が指定されていない場合、値は 1 ずつ増分されます。
    例: score_field | incrementValue(5)score_field が 90 の場合、95 を返します)
    例: counter_field | incrementValue()counter_field が 10 の場合、11 を返します)
  • setIfEmpty ("defaultValue"): 入力値が空の場合に、指定されたデフォルト値を返します。
    例: optional_field | setIfEmpty("N/A")optional_field が空の場合は「N/A」を返し、それ以外の場合は optional_field の値を返します)
  • toUnixtime (): 人間が読める形式の日時文字列(「2014/03/12T13:37:27Z」や「2014-03-12T13:37:27+01:00」など)を、UTC で表される Unix タイムスタンプに変換します。
    例: "2024-07-20T10:00:00Z" | toUnixtime()(1721469600 を返します)
  • ifThenElse ("operator", "comparedValue", "trueResult", "falseResult") - 条件を評価し、TRUE の場合は最初の式を返し、それ以外の場合は 2 番目の式を返します。
    例: severity_field | ifThenElse("=", "HIGH", "High Priority", "Normal Priority")severity_field が「HIGH」の場合は「High Priority」を返し、それ以外の場合は「Normal Priority」を返します)
    例: score_field | ifThenElse(">", "70", "Above Threshold", "Below Threshold")score_field が 90 の場合は「Above Threshold」を返し、score_field が 60 の場合は「Below Threshold」を返します)

式:

[式] フィールドには、JSON の結果を関数やパイプとともに挿入して、複数の関数を組み合わせて式を作成します。

実行 / 結果:

式ビルダーに入力したら、[実行] をクリックして、式ビルダーに表示された JSON サンプル データに基づいて結果を表示します。

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。