Utilizzare il generatore di espressioni
Expression Builder consente di analizzare e modificare i risultati JSON per l'utilizzo in azioni successive. Il generatore di espressioni genera varie funzioni di trasformazione dinamica che puoi concatenare, visualizzare in anteprima e testare, offrendo un'esperienza interattiva per trasformare e analizzare i risultati delle azioni non elaborate.
Dopo aver selezionato un segnaposto per il parametro nell'azione del playbook, puoi utilizzare i risultati JSON. Questi risultati forniscono informazioni complete restituite dall'azione, che puoi utilizzare nelle azioni e nel flusso del playbook successivi. Per maggiori dettagli, vedi Casi d'uso per il generatore di espressioni.
Visualizzare il generatore di espressioni
Questo esempio mostra dati potenziali e non riflette i risultati in tempo reale. I dati effettivi potrebbero essere diversi e contenere più o meno campi. Se un analista conosce altri campi che verranno restituiti in fase di runtime, può inserire il percorso della chiave corrispondente nel campo Sintassi.
Funzioni
Sono supportate le seguenti funzioni pipe:
- Primi (x): restituisce i primi X elementi di un array.
Esempio:alerts | First(2)
(sealerts
è[{"id": "A"}, {"id": "B"}, {"id": "C"}]
, restituisce[{"id": "A"}, {"id": "B"}]
) - Ultimi (x): restituisce gli ultimi X elementi di un array.
Esempio:alerts | Last(1)
(sealerts
è[{"id": "A"}, {"id": "B"}, {"id": "C"}]
, restituisce[{"id": "C"}]
) - Min (KeyPath): restituisce l'elemento con il valore minimo di un array. Se viene fornito un parametro keyPath, restituisce l'oggetto con il valore minimo nel percorso specificato.
Esempio:alerts | Min("score")
(sealerts
contiene un elenco di oggetti con un camposcore
, restituisce l'oggetto con il punteggio più basso) - Max (KeyPath): restituisce l'elemento con il valore massimo di un array. Se viene fornito un parametro keyPath, restituisce l'oggetto con il valore massimo nel percorso specificato.
Esempio:alerts | Max("score")
(sealerts
contiene un elenco di oggetti con un camposcore
, restituisce l'oggetto con il punteggio più alto) - Filter (ConditionKey, Operator, Value): filtra un array di oggetti, restituendo solo gli oggetti che corrispondono a una condizione in un campo specificato.
- ConditionKey: il campo di ogni oggetto da valutare in base alla condizione.
- Operatore: operatore da utilizzare per la condizione.
- Per l'input di stringhe:
=
,!=
,in
,not in
. - Per l'inserimento di numeri/date:
=
,!=
,>
,>=
,<
,<=
. - Valore: valore da controllare nella condizione.
Esempio:alerts | Filter("severity", "=", "HIGH")
(restituisce tutti gli avvisi in cui il camposeverity
è "HIGH") -
DateFormat ("pattern"): formatta una data in un determinato pattern (il pattern viene specificato come parametro) nel seguente formato:
YYYY-MM-DDThh:mm:ssZ
.
Esempio:timestamp_field | DateFormat("yyyy/MM/ddTHH:mm:ss")
(setimestamp_field
è "2024/07/20T10:00:00Z", restituisce "2024-07-20 10:00:00") -
Count (): restituisce il numero di elementi nell'array di input.
Esempio:alerts | Count()
(sealerts
è un array con 4 elementi, restituisce 4) -
OrderBy ("keyPath", "direction"): ordina un array di oggetti in base ai valori di un percorso chiave specificato.
Esempio:alerts | OrderBy("score", "DESC")
(ordina l'arrayalerts
in base ascore
in ordine decrescente) -
toLower (): converte un input in caratteri minuscoli.
Esempio:status_field | toLower()
(sestatus_field
è "OPEN", restituisce "open") -
toUpper (): converte un input in caratteri maiuscoli.
Esempio:severity_field | toUpper()
(seseverity_field
è "high", restituisce "HIGH") -
Replace ("x", "y"): sostituisce una sottostringa all'interno di una stringa con un'altra stringa.
Esempio:message_field | Replace("World", "Universe")
(semessage_field
è "Hello World", restituisce "Hello Universe") -
Distinct (): rimuove i valori duplicati da un array. Per gli array di oggetti, esegue un confronto approfondito per identificare gli oggetti duplicati.
Esempio:[10, 20, 30, 20, 40] | Distinct()
(restituisce[10, 20, 30, 40]
) -
getByIndex ("index"): recupera gli elementi di un array in base a un indice specificato o a un elenco di indici.
Esempio:alerts | getByIndex("0")
(restituisce il primo elemento dell'arrayalerts
)
Esempio:alerts | getByIndex("0,2")
(restituisce il primo e il terzo elemento dell'arrayalerts
) -
split ("delimiter"): divide una stringa in un array di sottostringhe, utilizzando un delimitatore specificato.
Esempio:"tag1,tag2,tag3" | split(",")
(restituisce["tag1", "tag2", "tag3"]
) -
join ("delimiter"): concatena un array di stringhe in un'unica stringa, utilizzando un delimitatore specificato.
Esempio:["malware", "critical"] | join(" & ")
(restituisce "malware & critical") -
trim (): rimuove gli spazi vuoti iniziali e finali da una stringa.
Esempio:" hello world " | trim()
(restituisce "hello world") -
trimChars ("caratteri"): rimuove i caratteri specificati dall'inizio e dalla fine di una stringa. Gli spazi vuoti iniziali e finali vengono sempre rimossi, anche se non specificati in modo esplicito.
Esempio:"--TEST--ABC--" | trimChars("-")
(restituisce "TEST--ABC") -
substring (start, end): estrae una sottostringa da una stringa, utilizzando un indice iniziale specificato e un indice finale facoltativo.
Esempio:"Hello World" | substring(0, 5)
(restituisce "Hello")
Esempio:"Hello World" | substring(6)
(restituisce "World") -
incrementValue (valore): aumenta un valore numerico di un importo specificato. Se non viene specificato alcun importo, il valore viene incrementato di 1.
Esempio:score_field | incrementValue(5)
(sescore_field
è 90, restituisce 95)
Esempio:counter_field | incrementValue()
(secounter_field
è 10, restituisce 11) -
setIfEmpty ("defaultValue"): restituisce il valore predefinito fornito se il valore di input è vuoto.
Esempio:optional_field | setIfEmpty("N/A")
(seoptional_field
è vuoto, restituisce "N/A"; altrimenti, restituisce il valore dioptional_field
) -
toUnixtime (): converte una stringa di data e ora leggibile (ad es. "2014/03/12T13:37:27Z" o "2014-03-12T13:37:27+01:00") in un timestamp Unix, espresso in formato UTC.
Esempio:"2024-07-20T10:00:00Z" | toUnixtime()
(restituisce 1721469600) -
ifThenElse ("operator", "comparedValue", "trueResult", "falseResult"): valuta una condizione e restituisce la prima espressione se è vera, altrimenti restituisce la seconda espressione.
Esempio:severity_field | ifThenElse("=", "HIGH", "High Priority", "Normal Priority")
(seseverity_field
è "HIGH", restituisce "Priorità alta"; altrimenti, restituisce "Priorità normale")
Esempio:score_field | ifThenElse(">", "70", "Above Threshold", "Below Threshold")
(sescore_field
è 90, restituisce "Sopra la soglia"; sescore_field
è 60, restituisce "Sotto la soglia")
Espressione:
Il campo Espressione è quello in cui inserisci i risultati JSON insieme a funzioni e pipe per aggiungere più funzioni insieme e creare l'espressione.Corsa / Risultati:
Dopo aver compilato lo strumento per la creazione di espressioni, fai clic su Esegui per visualizzare i risultati in base ai dati di esempio JSON visualizzati nello strumento per la creazione di espressioni.Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.