

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

# JSON bermutasi prosesor
<a name="CloudWatch-Logs-Transformation-JSONMutate"></a>

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

**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>

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<br />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` dengan`parseJSON`:

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

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` dengan`parseJSON`:

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

Peristiwa log yang diubah adalah sebagai berikut.

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

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

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<br />Kedalaman kunci bersarang maksimum: 3 | 
| target | Kunci untuk pindah ke | Ya |  | Panjang maksimum: 128<br />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` dengan`parseJSON`:

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

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<br />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` dengan`parseJSON`:

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

Peristiwa log yang diubah adalah sebagai berikut.

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

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

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<br />Kedalaman kunci bersarang maksimum: 3 | 
| target | Kunci untuk menyalin nilai ke | Ya | Tidak ada batas | Panjang maksimum: 128<br />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` dengan`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"
                }
            ]
        }
    }
]
```

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

`listToMap`Prosesor 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<br />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<br />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.<br />Secara default nilai untuk kunci yang cocok akan direpresentasikan dalam array. Set `flatten` `true` untuk mengkonversi array ke nilai tunggal berdasarkan nilai`flattenedElement`. | Tidak | false |  | 
| FlattenedElement | Jika Anda mengatur flatten ketrue, gunakan flattenedElement untuk menentukan elemen mana, first ataulast, untuk 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"
}
```