Processori JSON con mutazione - CloudWatch Registri Amazon

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Processori JSON con mutazione

Questa sezione contiene informazioni sui processori di mutazione JSON che è possibile utilizzare con un trasformatore di eventi di registro.

AddKeys

Utilizzate il addKeys processore per aggiungere nuove coppie chiave-valore all'evento di registro.

Campo Description Obbligatorio? Predefinito Limits

voci

Matrice di voci. Ogni elemento dell'array può contenere overwriteIfExists campi keyvalue, e.

Numero massimo di iscrizioni: 5

Chiave

La chiave della nuova voce da aggiungere

Lunghezza massima: 128.

Profondità massima della chiave annidata: 3

value

Il valore della nuova voce da aggiungere

Lunghezza massima: 256

overwriteIfExists

Se lo imposti sutrue, il valore esistente viene sovrascritto se key già presente nell'evento. Il valore predefinito è false. No

false

Nessun limite

Esempio

Prendiamo il seguente esempio di evento di registro:

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

La configurazione del trasformatore è questa, utilizzata addKeys conparseJSON:

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

L'evento di registro trasformato sarebbe il seguente.

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

DeleteKeys

Usa il deleteKeys processore per eliminare i campi da un evento di registro. Questi campi possono includere coppie chiave-valore.

Campo Description Obbligatorio? Predefinito Limits

Con chiavi

L'elenco delle chiavi da eliminare.

Nessun limite

Numero massimo di iscrizioni: 5

Esempio

Prendiamo il seguente esempio di evento di registro:

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

La configurazione del trasformatore è questa, utilizzata deleteKeys conparseJSON:

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

L'evento di registro trasformato sarebbe il seguente.

{ "outer_key": {} }

moveKeys

Usa il moveKeys processore per spostare una chiave da un campo all'altro.

Campo Description Obbligatorio? Predefinito Limits

voci

Matrice di voci. Ogni elemento dell'array può contenere overwriteIfExists campi sourcetarget, e.

Numero massimo di iscrizioni: 5

origine

La chiave per muoversi

Lunghezza massima: 128.

Profondità massima della chiave annidata: 3

target

La chiave verso cui passare

Lunghezza massima: 128.

Profondità massima della chiave annidata: 3

overwriteIfExists

Se lo impostate sutrue, il valore esistente viene sovrascritto se key già presente nell'evento. Il valore predefinito è false. No

false

Nessun limite

Esempio

Prendiamo il seguente esempio di evento di registro:

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

La configurazione del trasformatore è questa, utilizzata moveKeys conparseJSON:

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

L'evento di registro trasformato sarebbe il seguente.

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

RenameKeys

Usa il renameKeys processore per rinominare le chiavi in un evento di registro.

Campo Description Obbligatorio? Predefinito Limits

voci

Matrice di voci. Ogni elemento dell'array può contenere overwriteIfExists campi keytarget, e.

Nessun limite

Numero massimo di iscrizioni: 5

Chiave

La chiave per rinominare

Nessun limite

Lunghezza massima: 128.

target

Il nuovo nome della chiave

Nessun limite

Lunghezza massima: 128.

Profondità massima della chiave annidata: 3

overwriteIfExists

Se lo impostate sutrue, il valore esistente viene sovrascritto se key già presente nell'evento. Il valore predefinito è false. No

false

Nessun limite

Esempio

Prendiamo il seguente esempio di evento di registro:

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

La configurazione del trasformatore è questa, utilizzata renameKeys conparseJSON:

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

L'evento di registro trasformato sarebbe il seguente.

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

CopyValue

Usa il copyValue processore per copiare i valori all'interno di un evento di registro. È inoltre possibile utilizzare questo processore per aggiungere metadati agli eventi di registro, copiando i valori delle seguenti chiavi di metadati negli eventi di registro:@logGroupName,,,@logGroupStream. @accountId @regionName Questo è illustrato nell'esempio seguente.

Campo Description Obbligatorio? Predefinito Limits

voci

Matrice di voci. Ogni elemento dell'array può contenere overwriteIfExists campi sourcetarget, e.

Numero massimo di iscrizioni: 5

origine

La chiave da copiare

Lunghezza massima: 128.

Profondità massima della chiave annidata: 3

target

La chiave in cui copiare il valore

Nessun limite

Lunghezza massima: 128.

Profondità massima della chiave annidata: 3

overwriteIfExists

Se lo impostate sutrue, il valore esistente viene sovrascritto se key già presente nell'evento. Il valore predefinito è false. No

false

Nessun limite

Esempio

Prendiamo il seguente esempio di evento di registro:

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

La configurazione del trasformatore è questa, utilizzata copyValue conparseJSON:

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

L'evento di registro trasformato sarebbe il seguente.

{ "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

Il listToMap processore prende un elenco di oggetti che contengono campi chiave e li converte in una mappa di chiavi di destinazione.

Campo Description Obbligatorio? Predefinito Limits

origine

La chiave contiene un elenco di oggetti che verranno convertiti in una mappa ProcessingEvent

Lunghezza massima: 128.

Profondità massima della chiave annidata: 3

Chiave

La chiave dei campi da estrarre come chiavi nella mappa generata

Lunghezza massima: 128.

ValueKey

Se viene specificato, i valori specificati in questo parametro verranno estratti dagli source oggetti e inseriti nei valori della mappa generata. Altrimenti, gli oggetti originali nell'elenco dei sorgenti verranno inseriti nei valori della mappa generata.

No

Lunghezza massima: 128.

target

La chiave del campo che conterrà la mappa generata

No

Nodo radice

Lunghezza massima: 128.

Profondità massima della chiave annidata: 3

flatten

Un valore booleano per indicare se l'elenco verrà appiattito in singoli elementi o se i valori nella mappa generata saranno elenchi.

Per impostazione predefinita, i valori per le chiavi corrispondenti saranno rappresentati in un array. flattentrueImpostare su per convertire l'array in un singolo valore basato sul valore diflattenedElement.

No

false

Elemento appiattito

Se impostate su flattentrue, utilizzate flattenedElement per specificare quale elemento, first olast, conservare.

Obbligatorio quando flatten è impostato su true

Il valore può essere solo first o last

Esempio

Prendiamo il seguente esempio di evento di registro:

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

Trasformatore per il caso d'uso 1: flatten è false

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

L'evento di registro trasformato sarebbe il seguente.

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

Trasformatore per il caso d'uso 2: flatten è true ed flattenedElement è first

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

L'evento di registro trasformato sarebbe il seguente.

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

Trasformatore per il caso d'uso 3: flatten è true ed flattenedElement è last

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

L'evento di registro trasformato sarebbe il seguente.

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