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
}