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"
    ]
}

client_ip が blocked_ips に含まれているかどうかをチェックすることで、リクエスト がブロックされたアドレスからのものであるかどうかを判断できる。 どちらの表記でも構わない。

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
}