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
}