DataPrime array-Funktionen
Dieses Handbuch enthält ein Glossar aller verfügbaren IBM® Cloud Logs DataPrime Funktionen zur Verarbeitung von Arrays.
arrayContains
Gibt true zurück, wenn ein Array das angegebene Element enthält, oder false, wenn das Array das Element nicht enthält. Unterstützte Elementtypen sind string, bool, number, interval,
timestamp, regex und enum.
Diese Funktion ist die Umkehrung von inArray.
arrayContains(array: array<T>, element: T): bool
arrayContains kann auch in Methodenschreibweise angegeben werden:
(array: array<T>).arrayContains(element: T): bool
Dabei gilt:
element- Ist das Element, nach dem im Array gesucht werden soll.
array- Ist das zu durchsuchende Array. Das Array muss Elemente desselben Typs wie
elemententhalten.
Beispiel
In diesem Beispiel haben Sie ein Firewall-Protokoll, das blockierte IDs aufzeichnet.
{
"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"
]
}
Wenn Sie prüfen, ob client_ip in blocked_ips enthalten ist, können Sie feststellen, ob die Anfrage von einer blockierten Adresse stammt. Jede dieser Schreibweisen kann verwendet werden.
create is_blocked_ip from arrayContains(blocked_ips, client_ip)
create is_blocked_ip from blocked_ips.arrayContains(client_ip)
Das Ergebnis wird ein neues Feld (is_blocked_ip) mit einem booleschen Wert enthalten.
{
"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
Gibt true zurück, wenn das angegebene Element im Array existiert, oder false, wenn das Element nicht im Array existiert. Unterstützte Elementtypen sind string, bool, number, interval,
timestamp, regex und enum.
Diese Funktion ist die Umkehrung von arrayContains.
inArray(element: T, array: array<T>): bool
inArray kann auch in Methodenschreibweise angegeben werden:
(element: T).inArray(array: array<T>): bool
Dabei gilt:
element- Ist das Element, nach dem im Array gesucht werden soll.
array- Ist das zu durchsuchende Array. Das Array muss Elemente desselben Typs wie
elemententhalten.
Beispiel
In diesem Beispiel haben Sie einen Protokolleintrag mit einer Client-IP-Adresse.
{
"client_ip": "192.168.1.105"
}
Sie möchten prüfen, ob der Wert client_ip in einem Array gesperrter IP-Adressen vorhanden ist, damit Sie feststellen können, ob eine Anfrage gesperrt werden sollte. Jede dieser Schreibweisen kann verwendet werden.
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'])
Das Ergebnis wird true sein, da 192.168.1.105 in der Matrix enthalten ist.
{
"client_ip": "192.168.1.105",
"is_blocked": true
}