DataPrime funzioni di array
Questa guida fornisce un glossario di tutte le funzioni IBM® Cloud Logs DataPrime disponibili per l'elaborazione degli array.
arrayContains
Restituisce true se una matrice include l'elemento specificato, oppure false se la matrice non include l'elemento. I tipi di elementi supportati sono string, bool, number, interval,
timestamp, regex e enum.
Questa funzione è l'inverso di inArray.
arrayContains(array: array<T>, element: T): bool
arrayContains possono essere specificati anche in notazione di metodo:
(array: array<T>).arrayContains(element: T): bool
Dove:
element- È l'elemento da controllare nell'array.
array- È l'array da cercare. L'array deve contenere elementi dello stesso tipo di
element.
Esempio
In questo esempio si ha un registro del firewall che registra gli ID bloccati.
{
"action": "BLOCK",
"client_ip": "134.56.32.98",
"blocked_ips": [
"134.56.32.91",
"134.56.32.93",
"134.56.32.90",
"134.56.32.105"
]
}
Controllando se client_ip è contenuto in blocked_ips è possibile determinare se la richiesta proviene da un indirizzo bloccato. È possibile utilizzare entrambe le notazioni.
create is_blocked_ip from arrayContains(blocked_ips, client_ip)
create is_blocked_ip from blocked_ips.arrayContains(client_ip)
Il risultato includerà un nuovo campo (is_blocked_ip) con un valore booleano.
{
"action": "BLOCK",
"client_ip": "134.56.32.98",
"blocked_ips": [
"134.56.32.91",
"134.56.32.93",
"134.56.32.90",
"134.56.32.105"
],
"is_blocked_ip": false
}
inArray
Restituisce true se l'elemento specificato esiste nell'array, oppure false se l'elemento non esiste nell'array. I tipi di elementi supportati sono string, bool, number, interval,
timestamp, regex e enum.
Questa funzione è l'inverso di arrayContains.
inArray(element: T, array: array<T>): bool
inArray possono essere specificati anche in notazione di metodo:
(element: T).inArray(array: array<T>): bool
Dove:
element- È l'elemento da controllare nell'array.
array- È l'array da cercare. L'array deve contenere elementi dello stesso tipo di
element.
Esempio
In questo esempio è presente una voce di registro con un indirizzo IP del client.
{
"client_ip": "192.168.1.105"
}
Si vuole verificare se il valore client_ip esiste in un array di indirizzi IP bloccati, in modo da poter identificare se una richiesta deve essere bloccata. È possibile utilizzare entrambe le notazioni.
filter inArray(client_ip, ['192.168.1.105', '192.168.1.112', '192.168.1.32'])
filter client_ip.inArray(['192.168.1.105', '192.168.1.112', '192.168.1.32'])
Il risultato sarà true poiché 192.168.1.105 è incluso nell'array.
{
"client_ip": "192.168.1.105",
"is_blocked": true
}