DataPrime 배열 함수
이 가이드에서는 배열 처리를 위해 사용 가능한 모든 IBM® Cloud Logs DataPrime 함수에 대한 용어집을 제공합니다.
arrayContains
배열에 지정된 요소가 포함된 경우 true, 배열에 요소가 포함되지 않은 경우 false 을 반환합니다. 지원되는 요소 유형은 string, bool, number, interval, timestamp, regex, enum 입니다.
이 함수는 inArray.
arrayContains(array: array<T>, element: T): bool
arrayContains 메서드 표기법에서도 지정할 수 있습니다:
(array: array<T>).arrayContains(element: T): bool
여기서:
element- 배열에서 확인할 요소입니다.
array- 검색할 배열입니다. 배열에는
element와 같은 유형의 요소가 포함되어야 합니다.
예
이 예제에는 차단된 ID를 기록하는 방화벽 로그가 있습니다.
{
"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"
]
}
blocked_ips 에 client_ip 이 포함되어 있는지 확인하여 요청이 차단된 주소에서 온 것인지 확인할 수 있습니다. 이 표기법 중 하나를 사용할 수 있습니다.
create is_blocked_ip from arrayContains(blocked_ips, client_ip)
create is_blocked_ip from blocked_ips.arrayContains(client_ip)
결과에는 부울 값이 있는 새 필드(is_blocked_ip)가 포함됩니다.
{
"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
지정된 요소가 배열에 존재하면 true, 배열에 존재하지 않으면 false 을 반환합니다. 지원되는 요소 유형은 string, bool, number, interval, timestamp, regex, enum 입니다.
이 함수는 arrayContains.
inArray(element: T, array: array<T>): bool
inArray 메서드 표기법에서도 지정할 수 있습니다:
(element: T).inArray(array: array<T>): bool
여기서:
element- 배열에서 확인할 요소입니다.
array- 검색할 배열입니다. 배열에는
element와 같은 유형의 요소가 포함되어야 합니다.
예
이 예제에는 클라이언트 IP 주소가 포함된 로그 항목이 있습니다.
{
"client_ip": "192.168.1.105"
}
요청을 차단해야 하는지 확인하기 위해 차단된 IP 주소 배열에 client_ip 값이 있는지 확인하려고 합니다. 이 표기법 중 하나를 사용할 수 있습니다.
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'])
192.168.1.105 이 배열에 포함되어 있으므로 결과는 true 이 됩니다.
{
"client_ip": "192.168.1.105",
"is_blocked": true
}