Logik mit dem Ausdrucks-Builder erstellen

Unterstützt in:

Mit dem Ausdrucks-Builder können Sie JSON-Ergebnisse parsen und ändern, um sie in nachfolgenden Aktionen zu verwenden. Der Ausdrucks-Builder generiert verschiedene dynamische Transformationsfunktionen, die Sie verketten, in der Vorschau ansehen und testen können. So können Sie Rohdaten aus Aktionsergebnissen interaktiv transformieren und parsen.

Nachdem Sie einen Platzhalter für den Parameter in der Playbook-Aktion ausgewählt haben, können Sie die JSON-Ergebnisse verwenden. Diese Ergebnisse enthalten umfassende Informationen, die von der Aktion zurückgegeben werden. Sie können sie in nachfolgenden Playbook-Aktionen und im Flow verwenden. Weitere Informationen finden Sie unter Anwendungsfälle für den Ausdrucks-Builder.

Ausdrucks-Builder ansehen

Dieses Beispiel zeigt potenzielle Daten und spiegelt keine Echtzeitergebnisse wider. Die tatsächlichen Daten können abweichen und mehr oder weniger Felder enthalten. Wenn ein Analyst zusätzliche Felder kennt, die zur Laufzeit zurückgegeben werden, kann er den entsprechenden Schlüsselpfad in das Feld Syntax eingeben.

Funktionen

Die folgenden Pipe-Funktionen werden unterstützt:

  • First (x): Gibt die ersten X Elemente eines Arrays zurück.
    Beispiel: alerts | First(2) (Wenn alerts gleich [{"id": "A"}, {"id": "B"}, {"id": "C"}] ist, wird [{"id": "A"}, {"id": "B"}] zurückgegeben.)
  • Last (x): Gibt die letzten X Elemente eines Arrays zurück.
    Beispiel: alerts | Last(1) (Wenn alerts gleich [{"id": "A"}, {"id": "B"}, {"id": "C"}] ist, wird [{"id": "C"}] zurückgegeben.)
  • Min (KeyPath): Gibt das Element mit dem Mindestwert aus einem Array zurück. Wenn ein KeyPath-Parameter angegeben wird, wird das Objekt mit dem Mindestwert am angegebenen Pfad zurückgegeben.
    Beispiel: alerts | Min("score") (Wenn alerts eine Liste von Objekten mit einem Feld score enthält, wird das Objekt mit dem niedrigsten Wert zurückgegeben.)
  • Max (KeyPath): Gibt das Element mit dem Höchstwert aus einem Array zurück. Wenn ein KeyPath-Parameter angegeben wird, wird das Objekt mit dem Höchstwert am angegebenen Pfad zurückgegeben.
    Beispiel: alerts | Max("score") (Wenn alerts eine Liste von Objekten mit einem Feld score enthält, wird das Objekt mit dem höchsten Wert zurückgegeben.)
  • Filter (ConditionKey, Operator, Value): Filtert ein Array von Objekten und gibt nur die Objekte zurück, die einer Bedingung für ein bestimmtes Feld entsprechen.
    • ConditionKey: Das Feld in jedem Objekt, das anhand der Bedingung ausgewertet werden soll.
    • Operator: Der Operator, der für die Bedingung verwendet werden soll.
      • Für String-Eingaben: =, !=, in, not in.
      • Für Zahlen-/Datumseingaben: =, !=, >, >=, < , <=.
  • Wert: Der Wert, der in der Bedingung geprüft werden soll.
    Beispiel: alerts | Filter("severity", "=", "HIGH") (Gibt alle Benachrichtigungen zurück, bei denen das Feld severity den Wert „HIGH“ hat.)
  • DateFormat ("pattern") : Formatiert ein Datum in einem bestimmten Muster (das Muster wird als Parameter angegeben) in das folgende Format: YYYY-MM-DDThh:mm:ssZ.
    Beispiel: timestamp_field | DateFormat("yyyy/MM/ddTHH:mm:ss") (Wenn timestamp_field gleich „2024/07/20T10:00:00Z“ ist, wird „2024-07-20 10:00:00“ zurückgegeben.)
  • Count (): Gibt die Anzahl der Elemente im Eingabearray zurück.
    Beispiel: alerts | Count() (Wenn alerts ein Array mit vier Elementen ist, wird „4“ zurückgegeben.)
  • OrderBy ("keyPath", "direction"): Sortiert ein Array von Objekten anhand der Werte eines bestimmten Schlüsselpfads.
    Beispiel: alerts | OrderBy("score", "DESC") (Sortiert das Array alerts nach score in absteigender Reihenfolge.)
  • toLower (): Wandelt eine Eingabe in Kleinbuchstaben um.
    Beispiel: status_field | toLower() (Wenn status_field gleich "OPEN" ist, wird "open" zurückgegeben.)
  • toUpper (): Wandelt eine Eingabe in Großbuchstaben um.
    Beispiel: severity_field | toUpper() (Wenn severity_field gleich „high“ ist, wird „HIGH“ zurückgegeben.)
  • Replace ("x", "y"): Ersetzt einen Teilstring in einem String durch einen anderen String.
    Beispiel: message_field | Replace("World", "Universe") (Wenn message_field gleich „Hello World“ ist, wird „Hello Universe“ zurückgegeben.)
  • Distinct (): Entfernt doppelte Werte aus einem Array. Bei Arrays von Objekten wird ein umfassender Vergleich durchgeführt, um doppelte Objekte zu identifizieren.
    Beispiel: [10, 20, 30, 20, 40] | Distinct() (Gibt [10, 20, 30, 40] zurück.)
  • getByIndex ("index"): Ruft Elemente eines Arrays anhand eines bestimmten Index oder einer Liste von Indexen ab.
    Beispiel: alerts | getByIndex("0") (Gibt das erste Element des Arrays alerts zurück.)
    Beispiel: alerts | getByIndex("0,2") (Gibt das erste und dritte Element des Arrays alerts zurück.)
  • split ("delimiter"): Teilt einen String anhand eines bestimmten Trennzeichens in ein Array von Teilstrings auf.
    Beispiel: "tag1,tag2,tag3" | split(",") (Gibt ["tag1", "tag2", "tag3"] zurück.)
  • join ("delimiter"): Verkettet ein Array von Strings anhand eines bestimmten Trennzeichens zu einem einzelnen String.
    Beispiel: ["malware", "critical"] | join(" & ") (Gibt „malware & critical“ zurück.)
  • trim (): Entfernt voran- und nachgestellte Leerzeichen aus einem String.
    Beispiel: " hello world " | trim() (Gibt „hello world“ zurück.)
  • trimChars ("characters"): Entfernt bestimmte Zeichen vom Anfang und Ende eines Strings. Voran- und nachgestellte Leerzeichen werden immer entfernt, auch wenn sie nicht explizit angegeben sind.
    Beispiel: "--TEST--ABC--" | trimChars("-") (Gibt „TEST--ABC“ zurück.)
  • substring (start, end): Extrahiert einen Teilstring aus einem String anhand eines bestimmten Startindex und eines optionalen Endindex.
    Beispiel: "Hello World" | substring(0, 5) (Gibt „Hello“ zurück.)
    Beispiel: "Hello World" | substring(6) (Gibt „World“ zurück.)
  • incrementValue (value): Erhöht einen numerischen Wert um einen bestimmten Betrag. Wenn kein Betrag angegeben ist, wird der Wert um 1 erhöht.
    Beispiel: score_field | incrementValue(5) (Wenn score_field gleich 90 ist, wird 95 zurückgegeben.)
    Beispiel: counter_field | incrementValue() (Wenn counter_field gleich 10 ist, wird 11 zurückgegeben.)
  • setIfEmpty ("defaultValue"): Gibt den angegebenen Standardwert zurück, wenn der Eingabewert leer ist.
    Beispiel: optional_field | setIfEmpty("N/A") (Wenn optional_field leer ist, wird „N/A“ zurückgegeben. Andernfalls wird der Wert von optional_field zurückgegeben.)
  • toUnixtime (): Wandelt einen für Menschen lesbaren Datums- und Zeitstring (z.B. „2014/03/12T13:37:27Z“ oder „2014-03-12T13:37:27+01:00“) in einen Unix-Zeitstempel um, der in UTC ausgedrückt wird.
    Beispiel: "2024-07-20T10:00:00Z" | toUnixtime() (Gibt 1721469600 zurück.)
  • ifThenElse ("operator", "comparedValue", "trueResult", "falseResult") : Wertet eine Bedingung aus und gibt den ersten Ausdruck zurück, wenn die Bedingung wahr ist. Andernfalls wird der zweite Ausdruck zurückgegeben.
    Beispiel: severity_field | ifThenElse("=", "HIGH", "High Priority", "Normal Priority") (Wenn severity_field gleich „HIGH“ ist, wird „High Priority“ zurückgegeben. Andernfalls wird „Normal Priority“ zurückgegeben.)
    Beispiel: score_field | ifThenElse(">", "70", "Above Threshold", "Below Threshold") (Wenn score_field gleich 90 ist, wird „Above Threshold“ zurückgegeben. Wenn score_field gleich 60 ist, wird „Below Threshold“ zurückgegeben.)

Ausdruck :

Im Feld „Ausdruck“ fügen Sie die JSON-Ergebnisse zusammen mit den Funktionen und Pipes ein, um mehrere Funktionen zu kombinieren und den Ausdruck zu erstellen.

Ausführen / Ergebnisse :

Nachdem Sie den Ausdrucks-Builder ausgefüllt haben, klicken Sie auf Ausführen , um die Ergebnisse basierend auf den JSON-Beispieldaten anzuzeigen, die im Ausdrucks-Builder zu sehen sind.

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten