

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
<a name="CloudWatch-Logs-Transformation-JSONMutate"></a>

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

**Contents**
+ [AddKeys](#CloudWatch-Logs-Transformation-addKeys)
+ [DeleteKeys](#CloudWatch-Logs-Transformation-deleteKeys)
+ [moveKeys](#CloudWatch-Logs-Transformation-moveKeys)
+ [RenameKeys](#CloudWatch-Logs-Transformation-renameKeys)
+ [CopyValue](#CloudWatch-Logs-Transformation-copyValue)
+ [listToMap](#CloudWatch-Logs-Transformation-listToMap)

## AddKeys
<a name="CloudWatch-Logs-Transformation-addKeys"></a>

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


| Campo | Description | Obbligatorio? | Predefinita | Limits | 
| --- | --- | --- | --- | --- | 
| voci | Matrice di voci. Ogni elemento dell'array può contenere key overwriteIfExists campi e. value | Sì |  | Numero massimo di iscrizioni: 5 | 
| Chiave | La chiave della nuova voce da aggiungere | Sì |  | Lunghezza massima: 128.<br />Profondità massima della chiave annidata: 3 | 
| value | Il valore della nuova voce da aggiungere | Sì |  | 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` con`parseJSON`:

```
[
    {
        "parseJSON": {}
    },
    {
        "addKeys": {
            "entries": [
                {
                    "key": "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
<a name="CloudWatch-Logs-Transformation-deleteKeys"></a>

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


| Campo | Description | Obbligatorio? | Predefinita | Limits | 
| --- | --- | --- | --- | --- | 
| Con chiavi | L'elenco delle chiavi da eliminare. | Sì | 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` con`parseJSON`:

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

L'evento di registro trasformato sarebbe il seguente.

```
{
  "outer_key": {}
}
```

## moveKeys
<a name="CloudWatch-Logs-Transformation-moveKeys"></a>

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


| Campo | Description | Obbligatorio? | Predefinita | Limits | 
| --- | --- | --- | --- | --- | 
| voci | Matrice di voci. Ogni elemento dell'array può contenere source overwriteIfExists campi e. target | Sì |  | Numero massimo di iscrizioni: 5 | 
| origine | La chiave per muoversi | Sì |  | Lunghezza massima: 128.<br />Profondità massima della chiave annidata: 3 | 
| target | La chiave verso cui passare | Sì |  | Lunghezza massima: 128.<br />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` con`parseJSON`:

```
[
    {
        "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
<a name="CloudWatch-Logs-Transformation-renameKeys"></a>

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


| Campo | Description | Obbligatorio? | Predefinita | Limits | 
| --- | --- | --- | --- | --- | 
| voci | Matrice di voci. Ogni elemento dell'array può contenere key overwriteIfExists campi e. target | Sì | Nessun limite | Numero massimo di iscrizioni: 5 | 
| Chiave | La chiave per rinominare | Sì | Nessun limite | Lunghezza massima: 128. | 
| target | Il nuovo nome della chiave | Sì | Nessun limite | Lunghezza massima: 128.<br />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` con`parseJSON`:

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

L'evento di registro trasformato sarebbe il seguente.

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

## CopyValue
<a name="CloudWatch-Logs-Transformation-copyValue"></a>

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? | Predefinita | Limits | 
| --- | --- | --- | --- | --- | 
| voci | Matrice di voci. Ogni elemento dell'array può contenere source overwriteIfExists campi e. target | Sì |  | Numero massimo di iscrizioni: 5 | 
| origine | La chiave da copiare | Sì |  | Lunghezza massima: 128.<br />Profondità massima della chiave annidata: 3 | 
| target | La chiave in cui copiare il valore | Sì | Nessun limite | Lunghezza massima: 128.<br />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` con`parseJSON`:

```
[
    {
        "parseJSON": {}
    },
    {
        "copyValue": {
            "entries": [
                {
                    "key": "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
<a name="CloudWatch-Logs-Transformation-listToMap"></a>

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? | Predefinita | Limits | 
| --- | --- | --- | --- | --- | 
| origine | La chiave contiene un elenco di oggetti che verranno convertiti in una mappa ProcessingEvent  | Sì |  | Lunghezza massima: 128.<br />Profondità massima della chiave annidata: 3 | 
| Chiave | La chiave dei campi da estrarre come chiavi nella mappa generata | Sì |  | 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.<br />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.<br />Per impostazione predefinita, i valori per le chiavi corrispondenti saranno rappresentati in un array. `flatten``true`Impostare su per convertire l'array in un singolo valore basato sul valore di`flattenedElement`. | 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"
}
```