JSON bermutasi prosesor - CloudWatch Log Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

JSON bermutasi prosesor

Bagian ini berisi informasi tentang prosesor mutasi JSON yang dapat Anda gunakan dengan transformator peristiwa log.

AddKeys

Gunakan addKeys prosesor untuk menambahkan pasangan kunci-nilai baru ke peristiwa log.

Bidang Deskripsi Diperlukan? Default Batas

entri

Array entri. Setiap item dalam array dapat berisikey,value, dan overwriteIfExists bidang.

Ya

Entri maksimal: 5

kunci

Kunci entri baru yang akan ditambahkan

Ya

Panjang maksimum: 128

Kedalaman kunci bersarang maksimum: 3

nilai

Nilai entri baru yang akan ditambahkan

Ya

Panjang maksimal: 256

overwriteIfExists

Jika Anda menyetel ini ketrue, nilai yang ada akan ditimpa jika key sudah ada dalam acara tersebut. Nilai default-nya adalah false. Tidak

false

Tidak ada batas

Contoh

Ambil contoh peristiwa log berikut:

{ "outer_key": { "inner_key": "inner_value" } }

Konfigurasi transformator adalah ini, menggunakan addKeys denganparseJSON:

[ { "parseJSON": {} }, { "addKeys": { "entries": [ { "source": "outer_key.new_key", "value": "new_value" } ] } } ]

Peristiwa log yang diubah adalah sebagai berikut.

{ "outer_key": { "inner_key": "inner_value", "new_key": "new_value" } }

DeleteKeys

Gunakan deleteKeys prosesor untuk menghapus bidang dari peristiwa log. Bidang ini dapat mencakup pasangan kunci-nilai.

Bidang Deskripsi Diperlukan? Default Batas

denganKeys

Daftar kunci untuk dihapus.

Ya

Tidak ada batas

Entri maksimal: 5

Contoh

Ambil contoh peristiwa log berikut:

{ "outer_key": { "inner_key": "inner_value" } }

Konfigurasi transformator adalah ini, menggunakan deleteKeys denganparseJSON:

[ { "parseJSON": {} }, { "deleteKeys": { "withKeys":["outer_key.inner_key"] } } ]

Peristiwa log yang diubah adalah sebagai berikut.

{ "outer_key": {} }

MoveKeys

Gunakan moveKeys prosesor untuk memindahkan kunci dari satu bidang ke bidang lainnya.

Bidang Deskripsi Diperlukan? Default Batas

entri

Array entri. Setiap item dalam array dapat berisisource,target, dan overwriteIfExists bidang.

Ya

Entri maksimal: 5

sumber

Kunci untuk bergerak

Ya

Panjang maksimum: 128

Kedalaman kunci bersarang maksimum: 3

target

Kunci untuk pindah ke

Ya

Panjang maksimum: 128

Kedalaman kunci bersarang maksimum: 3

overwriteIfExists

Jika Anda menyetel ini ketrue, nilai yang ada akan ditimpa jika key sudah ada dalam acara tersebut. Nilai default-nya adalah false. Tidak

false

Tidak ada batas

Contoh

Ambil contoh peristiwa log berikut:

{ "outer_key1": { "inner_key1": "inner_value1" }, "outer_key2": { "inner_key2": "inner_value2" } }

Konfigurasi transformator adalah ini, menggunakan moveKeys denganparseJSON:

[ { "parseJSON": {} }, { "moveKeys": { "entries": [ { "source": "outer_key1.inner_key1", "target": "outer_key2" } ] } } ]

Peristiwa log yang diubah adalah sebagai berikut.

{ "outer_key1": {}, "outer_key2": { "inner_key2": "inner_value2", "inner_key1": "inner_value1" } }

RenameKeys

Gunakan renameKeys prosesor untuk mengganti nama kunci dalam peristiwa log.

Bidang Deskripsi Diperlukan? Default Batas

entri

Array entri. Setiap item dalam array dapat berisikey,target, dan overwriteIfExists bidang.

Ya

Tidak ada batas

Entri maksimal: 5

kunci

Kunci untuk mengganti nama

Ya

Tidak ada batas

Panjang maksimum: 128

target

Nama kunci baru

Ya

Tidak ada batas

Panjang maksimum: 128

Kedalaman kunci bersarang maksimum: 3

overwriteIfExists

Jika Anda menyetel ini ketrue, nilai yang ada akan ditimpa jika key sudah ada dalam acara tersebut. Nilai default-nya adalah false. Tidak

false

Tidak ada batas

Contoh

Ambil contoh peristiwa log berikut:

{ "outer_key": { "inner_key": "inner_value" } }

Konfigurasi transformator adalah ini, menggunakan renameKeys denganparseJSON:

[ { "parseJSON": {} }, { "renameKeys": { "entries": [ { "key": "outer_key", "target": "new_key" } ] } } ]

Peristiwa log yang diubah adalah sebagai berikut.

{ "new_key": { "inner_key": "inner_value" } }

CopyValue

Gunakan copyValue prosesor untuk menyalin nilai dalam peristiwa log. Anda juga dapat menggunakan prosesor ini untuk menambahkan metadata ke log peristiwa, dengan menyalin nilai kunci metadata berikut ke dalam peristiwa log:,,,. @logGroupName @logGroupStream @accountId @regionName Ini diilustrasikan dalam contoh berikut.

Bidang Deskripsi Diperlukan? Default Batas

entri

Array entri. Setiap item dalam array dapat berisisource,target, dan overwriteIfExists bidang.

Ya

Entri maksimal: 5

sumber

Kunci untuk menyalin

Ya

Panjang maksimum: 128

Kedalaman kunci bersarang maksimum: 3

target

Kunci untuk menyalin nilai ke

Ya

Tidak ada batas

Panjang maksimum: 128

Kedalaman kunci bersarang maksimum: 3

overwriteIfExists

Jika Anda menyetel ini ketrue, nilai yang ada akan ditimpa jika key sudah ada dalam acara tersebut. Nilai default-nya adalah false. Tidak

false

Tidak ada batas

Contoh

Ambil contoh peristiwa log berikut:

{ "outer_key": { "inner_key": "inner_value" } }

Konfigurasi transformator adalah ini, menggunakan copyValue denganparseJSON:

[ { "parseJSON": {} }, { "copyValue": { "entries": [ { "source": "outer_key.new_key", "target": "new_key" }, { "source": "@logGroupName", "target": "log_group_name" }, { "source": "@logGroupStream", "target": "log_group_stream" }, { "source": "@accountId", "target": "account_id" }, { "source": "@regionName", "target": "region_name" } ] } } ]

Peristiwa log yang diubah adalah sebagai berikut.

{ "outer_key": { "inner_key": "inner_value" }, "new_key": "inner_value", "log_group_name": "myLogGroupName", "log_group_stream": "myLogStreamName", "account_id": "012345678912", "region_name": "us-east-1" }

listToMap

listToMapProsesor mengambil daftar objek yang berisi bidang kunci, dan mengubahnya menjadi peta kunci target.

Bidang Deskripsi Diperlukan? Default Batas

sumber

Kunci dalam ProcessingEvent dengan daftar objek yang akan dikonversi ke peta

Ya

Panjang maksimum: 128

Kedalaman kunci bersarang maksimum: 3

kunci

Kunci bidang yang akan diekstraksi sebagai kunci di peta yang dihasilkan

Ya

Panjang maksimum: 128

ValueKey

Jika ini ditentukan, nilai yang Anda tentukan dalam parameter ini akan diekstraksi dari source objek dan dimasukkan ke dalam nilai peta yang dihasilkan. Jika tidak, objek asli dalam daftar sumber akan dimasukkan ke dalam nilai peta yang dihasilkan.

Tidak

Panjang maksimum: 128

target

Kunci bidang yang akan menampung peta yang dihasilkan

Tidak

Simpul akar

Panjang maksimum: 128

Kedalaman kunci bersarang maksimum: 3

meratakan

Nilai Boolean untuk menunjukkan apakah daftar akan diratakan menjadi item tunggal atau jika nilai dalam peta yang dihasilkan akan menjadi daftar.

Secara default nilai-nilai untuk kunci yang cocok akan diwakili dalam array. Set flatten true untuk mengkonversi array ke nilai tunggal berdasarkan nilaiflattenedElement.

Tidak

false

FlattenedElement

Jika Anda mengatur flatten ketrue, gunakan flattenedElement untuk menentukan elemen mana, first ataulast, yang akan disimpan.

Diperlukan saat flatten diatur ke true

Nilai hanya bisa first atau last

Contoh

Ambil contoh peristiwa log berikut:

{ "outer_key": [ { "inner_key": "a", "inner_value": "val-a" }, { "inner_key": "b", "inner_value": "val-b1" }, { "inner_key": "b", "inner_value": "val-b2" }, { "inner_key": "c", "inner_value": "val-c" } ] }

Transformator untuk kasus penggunaan 1: flatten adalah false

[ { "parseJSON": {} }, { "listToMap": { "source": "outer_key" "key": "inner_key", "valueKey": "inner_value", "flatten": false } } ]

Peristiwa log yang diubah adalah sebagai berikut.

{ "outer_key": [ { "inner_key": "a", "inner_value": "val-a" }, { "inner_key": "b", "inner_value": "val-b1" }, { "inner_key": "b", "inner_value": "val-b2" }, { "inner_key": "c", "inner_value": "val-c" } ], "a": [ "val-a" ], "b": [ "val-b1", "val-b2" ], "c": [ "val-c" ] }

Transformator untuk kasus penggunaan 2: flatten adalah true dan flattenedElement adalah first

[ { "parseJSON": {} }, { "listToMap": { "source": "outer_key" "key": "inner_key", "valueKey": "inner_value", "flatten": true, "flattenedElement": "first" } } ]

Peristiwa log yang diubah adalah sebagai berikut.

{ "outer_key": [ { "inner_key": "a", "inner_value": "val-a" }, { "inner_key": "b", "inner_value": "val-b1" }, { "inner_key": "b", "inner_value": "val-b2" }, { "inner_key": "c", "inner_value": "val-c" } ], "a": "val-a", "b": "val-b1", "c": "val-c" }

Transformator untuk kasus penggunaan 3: flatten adalah true dan flattenedElement adalah last

[ { "parseJSON": {} }, { "listToMap": { "source": "outer_key" "key": "inner_key", "valueKey": "inner_value", "flatten": true, "flattenedElement": "last" } } ]

Peristiwa log yang diubah adalah sebagai berikut.

{ "outer_key": [ { "inner_key": "a", "inner_value": "val-a" }, { "inner_key": "b", "inner_value": "val-b1" }, { "inner_key": "b", "inner_value": "val-b2" }, { "inner_key": "c", "inner_value": "val-c" } ], "a": "val-a", "b": "val-b2", "c": "val-c" }