Logik mit dem Ausdrucks-Builder erstellen
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)(Wennalertsgleich[{"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)(Wennalertsgleich[{"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")(Wennalertseine Liste von Objekten mit einem Feldscoreenthä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")(Wennalertseine Liste von Objekten mit einem Feldscoreenthä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 Feldseverityden 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")(Wenntimestamp_fieldgleich „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()(Wennalertsein 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 Arrayalertsnachscorein absteigender Reihenfolge.) -
toLower (): Wandelt eine Eingabe in Kleinbuchstaben um.
Beispiel:status_field | toLower()(Wennstatus_fieldgleich "OPEN" ist, wird "open" zurückgegeben.) -
toUpper (): Wandelt eine Eingabe in Großbuchstaben um.
Beispiel:severity_field | toUpper()(Wennseverity_fieldgleich „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")(Wennmessage_fieldgleich „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 Arraysalertszurück.)
Beispiel:alerts | getByIndex("0,2")(Gibt das erste und dritte Element des Arraysalertszurü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)(Wennscore_fieldgleich 90 ist, wird 95 zurückgegeben.)
Beispiel:counter_field | incrementValue()(Wenncounter_fieldgleich 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")(Wennoptional_fieldleer ist, wird „N/A“ zurückgegeben. Andernfalls wird der Wert vonoptional_fieldzurü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")(Wennseverity_fieldgleich „HIGH“ ist, wird „High Priority“ zurückgegeben. Andernfalls wird „Normal Priority“ zurückgegeben.)
Beispiel:score_field | ifThenElse(">", "70", "Above Threshold", "Below Threshold")(Wennscore_fieldgleich 90 ist, wird „Above Threshold“ zurückgegeben. Wennscore_fieldgleich 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