

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

# Sintaks indeks bidang dan kuota
<a name="CloudWatchLogs-Field-Indexing-Syntax"></a>

Anda membuat indeks bidang dengan membuat *kebijakan indeks bidang*. Anda dapat membuat kebijakan indeks tingkat akun yang berlaku untuk seluruh akun Anda, dan Anda juga dapat membuat kebijakan yang hanya berlaku untuk satu grup log. Untuk kebijakan indeks seluruh akun, Anda dapat memiliki kebijakan yang berlaku untuk semua grup log di akun. Anda juga dapat membuat kebijakan indeks tingkat akun yang berlaku untuk subset grup log di akun, yang dipilih berdasarkan awalan nama grup log mereka. Jika Anda memiliki beberapa kebijakan tingkat akun di akun yang sama, awalan nama grup log untuk kebijakan ini tidak dapat tumpang tindih. Demikian pula, Anda dapat membuat kebijakan indeks tingkat akun yang berlaku untuk nama sumber data tertentu dan kombinasi tipe. Hanya satu kebijakan akun yang dapat dibuat per nama sumber data dan kombinasi jenis. 

Kebijakan indeks bidang tingkat grup log mengganti kebijakan indeks bidang tingkat akun: yang berlaku untuk grup log secara keseluruhan (seperti, kebijakan tingkat akun tanpa kriteria pemilihan atau dengan kriteria pemilihan berdasarkan awalan nama grup log). Kebijakan tingkat akun yang cocok di tingkat peristiwa log (seperti, untuk nama sumber data tertentu dan kombinasi jenis) akan berlaku selain kebijakan yang cocok dengan grup log secara keseluruhan. Jika Anda membuat kebijakan indeks tingkat log-grup, grup log tersebut tidak menggunakan kebijakan tingkat akun yang cocok di tingkat grup log.

Pencocokan peristiwa log dengan nama indeks bidang peka huruf besar/kecil. Misalnya, indeks bidang tidak `RequestId` akan cocok dengan peristiwa log yang berisi`requestId`.

Anda dapat memiliki sebanyak 40 kebijakan indeks tingkat akun, dari kebijakan ini 20 dapat menggunakan kriteria pemilihan awalan nama grup log dan 20 dapat menggunakan kriteria pemilihan berbasis sumber data. Jika Anda memiliki beberapa kebijakan indeks tingkat akun yang difilter untuk mencatat awalan nama grup, tidak ada dua dari mereka yang dapat menggunakan awalan nama grup log yang sama atau tumpang tindih. Misalnya, jika Anda memiliki satu kebijakan yang difilter untuk mencatat grup yang dimulai`my-log`, Anda tidak dapat memfilter kebijakan indeks bidang lain ke `my-logpprod` atau`my-logging`. Demikian pula, jika Anda memiliki beberapa kebijakan indeks tingkat akun yang difilter ke nama sumber data dan kombinasi tipe, tidak ada dua dari mereka yang dapat menggunakan nama dan jenis sumber data yang sama. Misalnya, jika Anda memiliki satu kebijakan yang difilter ke nama sumber data `amazon_vpc` dan tipe sumber data, `flow` Anda tidak dapat membuat kebijakan lain dengan kombinasi ini.

Jika Anda memiliki kebijakan indeks tingkat akun yang tidak memiliki awalan nama dan berlaku untuk semua grup log, maka tidak ada kebijakan indeks tingkat akun lain dengan filter awalan nama grup log yang dapat dibuat; Anda dapat membuat kebijakan indeks tingkat akun yang menggunakan nama sumber data dan jenis filter.

Setiap kebijakan indeks memiliki kuota dan batasan berikut:
+ Sebanyak 20 bidang dapat dimasukkan dalam kebijakan.
+ Setiap nama bidang dapat mencakup sebanyak 100 karakter.
+ Untuk membuat indeks bidang kustom di grup log Anda yang dimulai dengan`@`, Anda harus menentukan bidang dengan tambahan `@` di awal nama bidang. Misalnya, jika peristiwa log Anda menyertakan bidang bernama`@userId`, Anda harus menentukan `@@userId` untuk membuat indeks untuk bidang ini.

Untuk kebijakan indeks tingkat akun dengan nama sumber data dan kriteria pemilihan berdasarkan tipe, pembatasan tambahan berlaku: semua bidang harus berupa tipe data primitif, primitif bersarang hanya didukung untuk struct.

**Bidang yang dihasilkan dan bidang cadangan**

CloudWatch Wawasan Log secara otomatis menghasilkan bidang sistem di setiap peristiwa log. Bidang yang dihasilkan ini diawali dengan `@` Untuk informasi selengkapnya tentang bidang yang dihasilkan, lihat[Log yang didukung dan bidang yang ditemukan](CWL_AnalyzeLogData-discoverable-fields.md).

Dari bidang yang dihasilkan ini, berikut ini didukung untuk digunakan sebagai indeks bidang:
+ `@logStream`
+ `@ingestionTime`
+ `@requestId`
+ `@type`
+ `@initDuration`
+ `@duration`
+ `@billedDuration`
+ `@memorySize`
+ `@maxMemoryUsed`
+ `@xrayTraceId`
+ `@xraySegmentId`

Untuk mengindeks bidang yang dihasilkan ini, Anda tidak perlu menambahkan tambahan `@` saat menentukannya, seperti yang harus Anda lakukan untuk bidang khusus yang dimulai`@`. Misalnya, untuk membuat indeks bidang untuk`@logStream`, cukup tentukan `@logStream` sebagai indeks bidang.

CloudWatch Log menyediakan indeks bidang default untuk semua grup log di kelas log Standar. Indeks bidang default secara otomatis tersedia untuk bidang berikut: 
+ `@logStream`
+ `@aws.region`
+ `@aws.account`
+ `@source.log`
+ `@data_source_name`
+ `@data_source_type`
+ `@data_format`
+ `traceId`
+ `severityText`
+ `attributes.session.id`

CloudWatch Log menyediakan indeks bidang default untuk nama sumber data tertentu dan kombinasi tipe juga. Indeks bidang default secara otomatis tersedia untuk kombinasi nama dan jenis sumber data berikut:


| Nama dan Jenis Sumber Data | Indeks Bidang Default | 
| --- | --- | 
|  `amazon_vpc.flow`  |  `action` `logStatus` `region` `flowDirection` `type`  | 
|  `amazon_route53.resolver_query`  |  `query_type` `transport` `rcode`  | 
|  `aws_waf.access`  |  `action` `httpRequest.country`  | 
|  `aws_cloudtrail.data` ` aws_cloudtrail.management`  |  `eventSource` `eventName` `awsRegion` `userAgent` `errorCode` `eventType` `managementEvent` `readOnly` `eventCategory` `requestId`  | 

Indeks bidang default merupakan tambahan dari indeks bidang kustom apa pun yang Anda tentukan dalam kebijakan Anda. Indeks bidang default tidak dihitung terhadap kuota [indeks bidang](#CloudWatchLogs-Field-Indexing-Syntax) Anda. 

**Bidang anak dan bidang array di log JSON**

Anda dapat mengindeks bidang yang merupakan bidang turunan bersarang atau bidang array di log JSON.

Misalnya, Anda dapat membuat indeks bidang `accessKeyId` anak dalam `userIdentity` bidang dalam log ini:

```
{
    "eventVersion": "1.0",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "EXAMPLE_PRINCIPAL_ID",
        "arn": "arn: aws: iam: : 123456789012: user/Alice",
        "accessKeyId": "11112222",
        "accountId": "123456789012",
        "userName": "Alice"
    },
    "eventTime": "2014-03-06T21: 22: 54Z",
    "eventSource": "ec2.amazonaws.com",
    "eventName": "StartInstances",
    "awsRegion": "us-east-2",
    "sourceIPAddress": "192.0.2.255",
    "userAgent": "ec2-api-tools1.6.12.2",
    "requestParameters": {
        "instancesSet": {
            "items": [{
                "instanceId": "i-abcde123",
                "currentState": {
                    "code": 0,
                    "name": "pending"
                },
                "previousState": {
                    "code": 80,
                    "name": "stopped"
                }
            }]
        }
    }
}
```

Untuk membuat bidang ini, Anda merujuknya menggunakan notasi titik (`userIdentity.accessKeyId`) baik saat membuat indeks bidang dan saat menentukannya dalam kueri. Kueri bisa terlihat seperti ini:

```
fields @timestamp, @message 
| filterIndex userIdentity.accessKeyId = "11112222"
```

Dalam contoh peristiwa sebelumnya, `instanceId` bidang berada dalam array dalam `requestParameters.instancesSet.items` Untuk mewakili bidang ini baik saat membuat indeks bidang dan saat query, lihat itu sebagai `requestParameters.instancesSet.items.0.instanceId` 0 mengacu pada tempat bidang itu dalam array.

Maka kueri untuk bidang ini bisa menjadi sebagai berikut:

```
fields @timestamp, @message 
| filterIndex requestParameters.instancesSet.items.0.instanceId="i-abcde123"
```