Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Processeurs de mutation JSON
Cette section contient des informations sur les processeurs de mutation JSON que vous pouvez utiliser avec un transformateur d'événements de journal.
Table des matières
Ajouter des clés
Utilisez le addKeys processeur pour ajouter de nouvelles paires clé-valeur à l'événement du journal.
| Champ | Description | Obligatoire ? | Par défaut | Restrictions |
|---|---|---|---|---|
|
entries |
Tableau d'entrées. Chaque élément du tableau peut contenir des overwriteIfExists champs keyvalue, et. |
Oui |
Nombre maximum d'entrées : 5 |
|
|
clé |
La clé de la nouvelle entrée à ajouter |
Oui |
Longueur maximale : 128 Profondeur maximale des touches imbriquées : 3 |
|
|
value |
La valeur de la nouvelle entrée à ajouter |
Oui |
Longueur maximale : 256 |
|
|
overwriteIfExists |
Si vous définissez ce paramètre surtrue, la valeur existante est remplacée si elle existe key déjà dans l'événement. La valeur par défaut est false. |
Non |
false |
Aucune limite |
Exemple
Prenons l'exemple d'événement de journal suivant :
{ "outer_key": { "inner_key": "inner_value" } }
La configuration du transformateur est la suivante, addKeys en utilisant parseJSON :
[ { "parseJSON": {} }, { "addKeys": { "entries": [ { "source": "outer_key.new_key", "value": "new_value" } ] } } ]
L'événement du journal transformé serait le suivant.
{ "outer_key": { "inner_key": "inner_value", "new_key": "new_value" } }
Supprimer les clés
Utilisez le deleteKeys processeur pour supprimer des champs d'un événement du journal. Ces champs peuvent inclure des paires clé-valeur.
| Champ | Description | Obligatoire ? | Par défaut | Restrictions |
|---|---|---|---|---|
|
Avec clés |
Liste des clés à supprimer. |
Oui |
Aucune limite |
Nombre maximum d'entrées : 5 |
Exemple
Prenons l'exemple d'événement de journal suivant :
{ "outer_key": { "inner_key": "inner_value" } }
La configuration du transformateur est la suivante, deleteKeys en utilisant parseJSON :
[ { "parseJSON": {} }, { "deleteKeys": { "withKeys":["outer_key.inner_key"] } } ]
L'événement du journal transformé serait le suivant.
{ "outer_key": {} }
Touches de déplacement
Utilisez le moveKeys processeur pour déplacer une touche d'un champ à l'autre.
| Champ | Description | Obligatoire ? | Par défaut | Restrictions |
|---|---|---|---|---|
|
entries |
Tableau d'entrées. Chaque élément du tableau peut contenir des overwriteIfExists champs sourcetarget, et. |
Oui |
Nombre maximum d'entrées : 5 |
|
|
source |
La clé pour bouger |
Oui |
Longueur maximale : 128 Profondeur maximale des touches imbriquées : 3 |
|
|
cible |
La clé pour passer à |
Oui |
Longueur maximale : 128 Profondeur maximale des touches imbriquées : 3 |
|
|
overwriteIfExists |
Si vous définissez ce paramètre surtrue, la valeur existante est remplacée si elle existe key déjà dans l'événement. La valeur par défaut est false. |
Non |
false |
Aucune limite |
Exemple
Prenons l'exemple d'événement de journal suivant :
{ "outer_key1": { "inner_key1": "inner_value1" }, "outer_key2": { "inner_key2": "inner_value2" } }
La configuration du transformateur est la suivante, moveKeys en utilisant parseJSON :
[ { "parseJSON": {} }, { "moveKeys": { "entries": [ { "source": "outer_key1.inner_key1", "target": "outer_key2" } ] } } ]
L'événement du journal transformé serait le suivant.
{ "outer_key1": {}, "outer_key2": { "inner_key2": "inner_value2", "inner_key1": "inner_value1" } }
Renommer les clés
Utilisez le renameKeys processeur pour renommer les clés dans un événement de journal.
| Champ | Description | Obligatoire ? | Par défaut | Restrictions |
|---|---|---|---|---|
|
entries |
Tableau d'entrées. Chaque élément du tableau peut contenir des overwriteIfExists champs keytarget, et. |
Oui |
Aucune limite |
Nombre maximum d'entrées : 5 |
|
clé |
La clé pour renommer |
Oui |
Aucune limite |
Longueur maximale : 128 |
|
cible |
Le nouveau nom de clé |
Oui |
Aucune limite |
Longueur maximale : 128 Profondeur maximale des touches imbriquées : 3 |
|
overwriteIfExists |
Si vous définissez ce paramètre surtrue, la valeur existante est remplacée si elle existe key déjà dans l'événement. La valeur par défaut est false. |
Non |
false |
Aucune limite |
Exemple
Prenons l'exemple d'événement de journal suivant :
{ "outer_key": { "inner_key": "inner_value" } }
La configuration du transformateur est la suivante, renameKeys en utilisant parseJSON :
[ { "parseJSON": {} }, { "renameKeys": { "entries": [ { "key": "outer_key", "target": "new_key" } ] } } ]
L'événement du journal transformé serait le suivant.
{ "new_key": { "inner_key": "inner_value" } }
Copier la valeur
Utilisez le copyValue processeur pour copier des valeurs dans un journal d'événements. Vous pouvez également utiliser ce processeur pour ajouter des métadonnées aux événements du journal, en copiant les valeurs des clés de métadonnées suivantes dans le journal des événements :@logGroupName,@logGroupStream,@accountId,@regionName. Ceci est illustré dans l'exemple suivant.
| Champ | Description | Obligatoire ? | Par défaut | Restrictions |
|---|---|---|---|---|
|
entries |
Tableau d'entrées. Chaque élément du tableau peut contenir des overwriteIfExists champs sourcetarget, et. |
Oui |
Nombre maximum d'entrées : 5 |
|
|
source |
La clé à copier |
Oui |
Longueur maximale : 128 Profondeur maximale des touches imbriquées : 3 |
|
|
cible |
La clé vers laquelle copier la valeur |
Oui |
Aucune limite |
Longueur maximale : 128 Profondeur maximale des touches imbriquées : 3 |
|
overwriteIfExists |
Si vous définissez ce paramètre surtrue, la valeur existante est remplacée si elle existe key déjà dans l'événement. La valeur par défaut est false. |
Non |
false |
Aucune limite |
Exemple
Prenons l'exemple d'événement de journal suivant :
{ "outer_key": { "inner_key": "inner_value" } }
La configuration du transformateur est la suivante, copyValue en utilisant parseJSON :
[ { "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'événement du journal transformé serait le suivant.
{ "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
Le listToMap processeur prend une liste d'objets contenant des champs clés et les convertit en une carte de clés cibles.
| Champ | Description | Obligatoire ? | Par défaut | Restrictions |
|---|---|---|---|---|
|
source |
La clé ProcessingEvent avec une liste d'objets qui seront convertis en carte |
Oui |
Longueur maximale : 128 Profondeur maximale des touches imbriquées : 3 |
|
|
clé |
La clé des champs à extraire sous forme de clés dans la carte générée |
Oui |
Longueur maximale : 128 |
|
|
Clé de valeur |
Si cela est spécifié, les valeurs que vous spécifiez dans ce paramètre seront extraites des source objets et insérées dans les valeurs de la carte générée. Dans le cas contraire, les objets originaux de la liste source seront placés dans les valeurs de la carte générée. |
Non |
Longueur maximale : 128 |
|
|
cible |
La clé du champ qui contiendra la carte générée |
Non |
Nœud racine |
Longueur maximale : 128 Profondeur maximale des touches imbriquées : 3 |
|
flatten |
Valeur booléenne indiquant si la liste sera aplatie en éléments individuels ou si les valeurs de la carte générée seront des listes. Par défaut, les valeurs des clés correspondantes seront représentées dans un tableau. Définissez |
Non |
false |
|
|
Élément aplati |
Si vous définissez flatten surtrue, flattenedElement utilisez-le pour spécifier quel élément, first oulast, à conserver. |
Obligatoire lorsque |
La valeur ne peut être que first ou last |
Exemple
Prenons l'exemple d'événement de journal suivant :
{ "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" } ] }
Transformateur pour le cas d'utilisation 1 : flatten est false
[ { "parseJSON": {} }, { "listToMap": { "source": "outer_key" "key": "inner_key", "valueKey": "inner_value", "flatten": false } } ]
L'événement du journal transformé serait le suivant.
{ "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" ] }
Transformateur pour le cas d'utilisation 2 : flatten est true et flattenedElement est first
[ { "parseJSON": {} }, { "listToMap": { "source": "outer_key" "key": "inner_key", "valueKey": "inner_value", "flatten": true, "flattenedElement": "first" } } ]
L'événement du journal transformé serait le suivant.
{ "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" }
Transformateur pour le cas d'utilisation 3 : flatten est true et flattenedElement est last
[ { "parseJSON": {} }, { "listToMap": { "source": "outer_key" "key": "inner_key", "valueKey": "inner_value", "flatten": true, "flattenedElement": "last" } } ]
L'événement du journal transformé serait le suivant.
{ "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" }