strings.coalesce
strings.coalesce(a, b, c, ...)
Description
Cette fonction accepte un nombre illimité d'arguments et renvoie la valeur de la première expression qui n'est pas évaluée comme une chaîne vide (par exemple, "valeur non nulle"). Si tous les arguments renvoient une chaîne vide, l'appel de fonction renvoie une chaîne vide.
Les arguments peuvent être des littéraux, des champs d'événement ou des appels de fonction. Tous les arguments doivent être de type STRING. Si des arguments sont des champs d'événement, les attributs doivent provenir du même événement.
Types de données des paramètres
STRING
Type renvoyé
STRING
Exemples de code
Exemple 1
L'exemple suivant inclut des variables de chaîne en tant qu'arguments. La condition est remplie lorsque (1) $e.network.email.from est défini sur suspicious@gmail.com ou (2) $e.network.email.from est vide et $e.network.email.to est défini sur suspicious@gmail.com.
"suspicious@gmail.com" = strings.coalesce($e.network.email.from, $e.network.email.to)
Exemple 2
L'exemple suivant appelle la fonction coalesce avec plus de deux arguments. Cette condition compare la première adresse IP non nulle de l'événement $e aux valeurs de la liste de référence ip_watchlist. L'ordre dans lequel les arguments sont fusionnés dans cet appel est le même que celui dans lequel ils sont énumérés dans la condition de règle :
$e.principal.ipest évalué en premier.$e.src.ipest évalué ensuite.$e.target.ipest évalué ensuite.- Enfin, la chaîne "No IP" est renvoyée comme valeur par défaut si les champs
ipprécédents ne sont pas définis.
strings.coalesce($e.principal.ip, $e.src.ip, $e.target.ip, "No IP") in %ip_watchlist
Exemple 3
L'exemple suivant tente de regrouper principal.hostname à partir de l'événement $e1 et de l'événement $e2. Une erreur de compilation sera renvoyée, car les arguments sont des variables d'événement différentes.
// returns a compiler error
"test" = strings.coalesce($e1.principal.hostname, $e2.principal.hostname)