

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

# Struktur acara Lambda @Edge
<a name="lambda-event-structure"></a>

Topik berikut menjelaskan objek peristiwa permintaan dan respons yang CloudFront diteruskan ke fungsi Lambda @Edge saat dipicu.

**Topics**
+ [Pemilihan asal dinamis](#lambda-event-content-based-routing)
+ [Permintaan acara](#lambda-event-structure-request)
+ [Peristiwa respon](#lambda-event-structure-response)

## Pemilihan asal dinamis
<a name="lambda-event-content-based-routing"></a>

Anda dapat menggunakan [pola jalur dalam perilaku cache](DownloadDistValuesCacheBehavior.md#DownloadDistValuesPathPattern) untuk merutekan permintaan ke asal berdasarkan jalur dan nama objek yang diminta, seperti `images/*.jpg`. Menggunakan Lambda@Edge, Anda juga dapat merutekan permintaan ke asal berdasarkan karakteristik lain, seperti nilai-nilai dalam header permintaan. 

Ada sejumlah cara agar pemilihan asal dinamis ini dapat berguna. Misalnya, Anda dapat mendistribusikan permintaan lintas asal-usul di area geografis yang berbeda untuk membantu menyeimbangkan beban global. Atau Anda dapat secara selektif merutekan permintaan ke asal-usul berbeda yang masing-masing melayani fungsi tertentu: penanganan bot, optimalisasi SEO, autentikasi, dan sebagainya. Untuk contoh kode yang mendemonstrasikan cara menggunakan fitur ini, lihat [Pemilihan asal dinamis berbasis konten - contoh](lambda-examples.md#lambda-examples-content-based-routing-examples).

Dalam peristiwa permintaan CloudFront asal, `origin` objek dalam struktur peristiwa berisi informasi tentang asal yang akan diarahkan ke permintaan, berdasarkan pola jalur. Anda dapat memperbarui nilai di `origin` mengajukan keberatan untuk mengirimkan permintaan ke negara asal yang berbeda. Saat Anda memperbarui `origin` objek, Anda tidak perlu menentukan asal dalam distribusi. Anda juga dapat mengganti objek asal Amazon S3 dengan objek asal kustom, dan sebaliknya. Namun, Anda hanya dapat menentukan asal tunggal per permintaan; asal kustom atau asal Amazon S3, tetapi tidak keduanya.

## Permintaan acara
<a name="lambda-event-structure-request"></a>

Topik berikut menunjukkan struktur objek yang CloudFront diteruskan ke fungsi Lambda untuk acara [permintaan penampil dan asal](lambda-cloudfront-trigger-events.md). Contoh-contoh ini menunjukkan `GET` tanpa isi. Berikut ini contoh adalah daftar semua bidang yang mungkin muncul dalam peristiwa permintaan penampil dan asal.

**Topics**
+ [Contoh permintaan penampil](#example-viewer-request)
+ [Contoh permintaan asal](#example-origin-request)
+ [Permintaan bidang acara](#request-event-fields)

### Contoh permintaan penampil
<a name="example-viewer-request"></a>

Contoh berikut menunjukkan objek acara permintaan penampil.

```
{
  "Records": [
    {
      "cf": {
        "config": {
          "distributionDomainName": "d111111abcdef8.cloudfront.net",
          "distributionId": "EDFDVBD6EXAMPLE",
          "eventType": "viewer-request",
          "requestId": "4TyzHTaYWb1GX1qTfsHhEqV6HUDd_BzoBZnwfnvQc_1oF26ClkoUSEQ=="
        },
        "request": {
          "clientIp": "203.0.113.178",
          "headers": {
            "host": [
              {
                "key": "Host",
                "value": "d111111abcdef8.cloudfront.net"
              }
            ],
            "user-agent": [
              {
                "key": "User-Agent",
                "value": "curl/7.66.0"
              }
            ],
            "accept": [
              {
                "key": "accept",
                "value": "*/*"
              }
            ]
          },
          "method": "GET",
          "querystring": "",
          "uri": "/"
        }
      }
    }
  ]
}
```

### Contoh permintaan asal
<a name="example-origin-request"></a>

Contoh berikut menunjukkan objek peristiwa permintaan asal usul.

```
{
  "Records": [
    {
      "cf": {
        "config": {
          "distributionDomainName": "d111111abcdef8.cloudfront.net",
          "distributionId": "EDFDVBD6EXAMPLE",
          "eventType": "origin-request",
          "requestId": "4TyzHTaYWb1GX1qTfsHhEqV6HUDd_BzoBZnwfnvQc_1oF26ClkoUSEQ=="
        },
        "request": {
          "clientIp": "203.0.113.178",
          "headers": {
            "x-forwarded-for": [
              {
                "key": "X-Forwarded-For",
                "value": "203.0.113.178"
              }
            ],
            "user-agent": [
              {
                "key": "User-Agent",
                "value": "Amazon CloudFront"
              }
            ],
            "via": [
              {
                "key": "Via",
                "value": "2.0 2afae0d44e2540f472c0635ab62c232b.cloudfront.net (CloudFront)"
              }
            ],
            "host": [
              {
                "key": "Host",
                "value": "example.org"
              }
            ],
            "cache-control": [
              {
                "key": "Cache-Control",
                "value": "no-cache"
              }
            ]
          },
          "method": "GET",
          "origin": {
            "custom": {
              "customHeaders": {},
              "domainName": "example.org",
              "keepaliveTimeout": 5,
              "path": "",
              "port": 443,
              "protocol": "https",
              "readTimeout": 30,
              "responseCompletionTimeout": 30,
              "sslProtocols": [
                "TLSv1",
                "TLSv1.1",
                "TLSv1.2"
              ]
            }
          },
          "querystring": "",
          "uri": "/"
        }
      }
    }
  ]
}
```

### Permintaan bidang acara
<a name="request-event-fields"></a>

Meminta data objek peristiwa dimuat dalam dua subobjek: `config` (`Records.cf.config`) and `request` (`Records.cf.request`). Daftar berikut menjelaskan setiap bidang subobject.

#### Bidang di objek konfigurasi
<a name="request-event-fields-config"></a>

Daftar berikut menjelaskan bidang dalam `config` objek (`Records.cf.config`).

**`distributionDomainName` (hanya baca)**  
Nama domain distribusi yang terkait dengan permintaan.

**`distributionID` (hanya baca)**  
ID distribusi yang terkait dengan permintaan.

**`eventType` (hanya baca)**  
Jenis pemicu yang terkait dengan permintaan: `viewer-request` atau`origin-request`.

**`requestId` (hanya baca)**  
String terenkripsi yang secara unik mengidentifikasi permintaan. viewer-to-CloudFront `requestId`Nilai juga muncul di log CloudFront akses sebagai`x-edge-request-id`. Untuk informasi selengkapnya, lihat [Akses log (log standar)](AccessLogs.md) dan [Bidang file log](standard-logs-reference.md#BasicDistributionFileFormat).

#### Bidang di objek permintaan
<a name="request-event-fields-request"></a>

Daftar berikut menjelaskan bidang dalam `request` objek (`Records.cf.request`).

**`clientIp` (hanya baca)**  
Alamat IP penampil yang membuat permintaan. Jika penampil menggunakan proksi HTTP atau penyeimbang beban untuk mengirim permintaan, nilainya adalah alamat IP proksi atau pengimbang beban.

**header (baca/tulis)**  
Header pada permintaan. Perhatikan hal-hal berikut:  
+ Kunci dalam `headers` objek adalah versi huruf kecil nama header HTTP standar. Menggunakan tombol huruf kecil memberi Anda akses huruf kecil ke nilai header.
+ Setiap objek header (misalnya, `headers["accept"]` atau `headers["host"]`) adalah serangkaian pasangan utama-nilai. Untuk header tertentu, larik berisi satu pasangan nilai kunci untuk setiap nilai dalam permintaan.
+ `key`berisi nama case-sensitive dari header seperti yang muncul dalam permintaan HTTP; misalnya,,, `Host``User-Agent`, `X-Forwarded-For``Cookie`, dan sebagainya.
+ `value` berisi nilai header sebagaimana muncul dalam permintaan HTTP.
+ Ketika fungsi Lambda Anda menambahkan atau memodifikasi header permintaan dan Anda tidak menyertakan bidang header`key`, Lambda @Edge secara otomatis menyisipkan header `key` menggunakan nama header yang Anda berikan. Terlepas dari bagaimana Anda telah memformat nama header, kunci header yang dimasukkan secara otomatis diformat dengan kapitalisasi awal untuk setiap bagian, dipisahkan oleh tanda hubung (-).

  Misalnya, Anda dapat menambahkan header seperti berikut, tanpa header `key`:

  ```
  "user-agent": [
    {
      "value": "ExampleCustomUserAgent/1.X.0"
    }
  ]
  ```

  Dalam contoh ini, Lambda@Edge secara otomatis memasukkan `"key": "User-Agent"`.
Untuk informasi tentang pembatasan penggunaan header, lihat [Pembatasan pada fungsi edge](edge-functions-restrictions.md).

**`method` (hanya baca)**  
Metode HTTP permintaan.

**`querystring` (baca/tulis)**  
String kueri, jika ada, dalam permintaan. Jika permintaan tidak menyertakan string kueri, objek acara masih menyertakan `querystring` dengan nilai kosong. Untuk informasi selengkapnya tentang string kueri, lihat [Konten cache berdasarkan parameter string kueri](QueryStringParameters.md).

**`uri` (baca/tulis)**  
Jalur relatif objek yang diminta. Jika fungsi Lambda Anda memodifikasi `uri` perhatikan hal-hal berikut:  
+ `uri` nilai harus dimulai dengan garis miring ke depan (/).
+ Saat fungsi mengubah `uri` yang mengubah objek yang diminta oleh penampil.
+ Ketika fungsi mengubah `uri` nilai, *itu tidak* mengubah perilaku cache untuk permintaan atau asal permintaan yang dikirim.

**`body` (baca/tulis)**  
Isi permintaan HTTP. `body` struktur dapat memuat kolom berikut:    
**`inputTruncated` (hanya baca)**  
Bendera Boolean yang menunjukkan apakah tubuh dijejali Lambda@Edge. Untuk informasi selengkapnya, lihat [Pembatasan pada isi permintaan dengan opsi sertakan isi](lambda-at-edge-function-restrictions.md#lambda-at-edge-restrictions-request-body).  
**`action` (baca/tulis)**  
Tindakan yang ingin Anda lakukan dengan tubuh. Opsi untuk `action` adalah sebagai berikut:  
+ `read-only:` Ini adalah pengaturan default. Saat mengembalikan respons dari fungsi Lambda, jika `action` adalah hanya baca, Lambda@Edge mengabaikan setiap perubahan pada `encoding` atau `data`.
+ `replace:` Tentukan ini saat Anda ingin mengganti tubuh yang dikirim ke asal.  
**`encoding` (baca/tulis)**  
Pengodean untuk tubuh. Saat Lambda@Edge mengekspos tubuh ke fungsi Lambda, pertama-tama tubuh berubah menjadi base64-encoding. Jika Anda memilih `replace` untuk `action` untuk mengganti tubuh, Anda dapat memilih untuk menggunakan pengodean `base64` (default) atau `text`. Jika Anda menentukan `encoding` sebagai `base64` tetapi tubuh tidak validbase64, CloudFront mengembalikan kesalahan.  
**`data` (baca/tulis)**  
Isi konten permintaan. 

**`origin` (baca/tulis) (hanya peristiwa awal)**  
Asal pengiriman permintaan ke. `origin`Struktur harus berisi *tepat satu asal*, yang dapat berupa asal khusus atau asal Amazon S3.  
Bergantung pada jenis asal yang Anda tentukan (asal kustom atau Amazon S3), Anda harus menentukan bidang berikut dalam permintaan Anda:    
**`customHeaders` (baca/tulis) (kustom dan berasal dari Amazon S3)**  
(Opsional) Anda dapat menyertakan header khusus dengan permintaan dengan menentukan nama header dan pasangan nilai untuk setiap header kustom. Anda tidak dapat menambahkan header yang tidak diizinkan, dan header dengan nama yang sama tidak dapat hadir. `Records.cf.request.headers` [Catatan tentang header permintaan](#request-event-fields-request-headers) juga berlaku untuk header kustom. Untuk informasi lebih lanjut, lihat [Header khusus yang tidak CloudFront dapat ditambahkan ke permintaan asal](add-origin-custom-headers.md#add-origin-custom-headers-denylist) dan [Pembatasan pada fungsi edge](edge-functions-restrictions.md).  
**`domainName` (baca/tulis) (kustom dan berasal dari Amazon S3)**  
Nama domain asal. Nama domain tidak bisa kosong.  
+ **Untuk asal kustom** – Tentukan nama domain DNS, seperti `www.example.com`. Nama domain tidak dapat menyertakan titik dua (:), dan tidak bisa menjadi alamat IP. Nama domain dapat terdiri dari hingga 253 karakter.
+ **Untuk asal Amazon S3** – Tentukan nama domain DNS bucket Amazon S3, seperti `amzn-s3-demo-bucket.s3.eu-west-1.amazonaws.com`. Nama bisa sampai 128 karakter dan harus berupa huruf kecil.  
**`path` (baca/tulis) (kustom dan berasal dari Amazon S3)**  
Jalur direktori di tempat asal permintaan harus menemukan konten. Jalur harus dimulai dengan garis miring (/) tetapi tidak boleh diakhiri dengan satu (misalnya, seharusnya tidak diakhiri dengan`example-path/`). Hanya untuk asal kustom, alur harus dienkode URL dan memiliki panjang maksimum 255 karakter.  
**`keepaliveTimeout` (baca/tulis) (hanya asal sesuai undang-undang)**  
Berapa lama, dalam hitungan detik, yang CloudFront harus mencoba mempertahankan koneksi ke asal setelah menerima paket terakhir dari respons. Nilainya harus berupa angka dari 1-120, inklusif.  
**`port` (baca/tulis) (hanya asal sesuai undang-undang)**  
Port yang CloudFront harus terhubung ke asal kustom Anda. Port harus 80, 443, atau nomor dalam kisaran 1024–65535, termasuk.  
**`protocol` (baca/tulis) (hanya asal sesuai undang-undang)**  
Protokol koneksi yang CloudFront harus digunakan saat menghubungkan ke asal Anda. Nilai dapat berupa `http` atau `https`.  
**`readTimeout` (baca/tulis) (kustom dan berasal dari Amazon S3)**  
Berapa lama, dalam hitungan detik, CloudFront harus menunggu tanggapan setelah mengirim permintaan ke asal Anda. Ini juga menentukan berapa lama CloudFront harus menunggu setelah menerima paket tanggapan sebelum menerima paket berikutnya. Nilainya harus berupa angka dari 1-120, inklusif.  
Jika Anda membutuhkan kuota yang lebih tinggi, lihat [Batas waktu respons per asal](cloudfront-limits.md#limits-web-distributions).  
**`responseCompletionTimeout` (baca/tulis) (kustom dan berasal dari Amazon S3)**  
Waktu (dalam detik) permintaan dari CloudFront ke asal dapat tetap terbuka dan menunggu tanggapan. Jika respons lengkap tidak diterima dari asal saat ini, CloudFront akhiri koneksi.  
Nilai untuk `responseCompletionTimeout` harus sama dengan atau lebih besar dari nilai untuk`readTimeout`. Jika Anda menetapkan nilai ini ke 0, itu akan menghapus nilai sebelumnya yang Anda tetapkan dan kembali ke default. Anda juga dapat melakukannya dengan menghapus `responseCompletionTimeout` bidang dari permintaan acara.   
**`sslProtocols` (baca/tulis) (hanya asal sesuai undang-undang)**  
 SSL/TLS Protokol minimum yang CloudFront dapat digunakan saat membuat koneksi HTTPS dengan asal Anda. Nilai dapat berupa: `TLSv1.2`, `TLSv1.1`, `TLSv1`, atau `SSLv3`.  
**`authMethod` (baca/tulis) (hanya asal-usul Amazon S3)**  
Jika Anda menggunakan [identitas akses asal (OAI)](private-content-restricting-access-to-s3.md#private-content-restricting-access-to-s3-oai), setel bidang ini ke`origin-access-identity`. Jika Anda tidak menggunakan OAI, atur ke`none`. Jika Anda mengatur `authMethod` untuk `origin-access-identity`, ada beberapa persyaratan:   
+ Anda harus menentukan `region` (lihat bidang berikut).
+ Anda harus menggunakan OAI yang sama ketika Anda mengubah permintaan dari satu asal Amazon S3 ke yang lain.
+ Anda tidak dapat menggunakan OAI saat mengubah permintaan dari asal kustom ke asal Amazon S3.
Bidang ini tidak mendukung [kontrol akses asal (OAC)](private-content-restricting-access-to-s3.md).  
**`region` (baca/tulis) (hanya asal-usul Amazon S3)**  
 AWS Wilayah ember Amazon S3 Anda. Ini hanya diperlukan ketika Anda mengatur `authMethod` untuk `origin-access-identity`.

## Peristiwa respon
<a name="lambda-event-structure-response"></a>

Topik berikut menunjukkan struktur objek yang CloudFront diteruskan ke fungsi Lambda untuk [penampil dan peristiwa respons asal](lambda-cloudfront-trigger-events.md). Berikut ini contoh adalah daftar semua bidang yang mungkin muncul di penampil dan kejadian respons asal.

**Topics**
+ [Contoh respon asal](#lambda-event-structure-response-origin)
+ [Contoh respons penampil](#lambda-event-structure-response-viewer)
+ [Bidang acara respons](#response-event-fields)

### Contoh respon asal
<a name="lambda-event-structure-response-origin"></a>

Contoh berikut menunjukkan objek peristiwa respons asal usul.

```
{
  "Records": [
    {
      "cf": {
        "config": {
          "distributionDomainName": "d111111abcdef8.cloudfront.net",
          "distributionId": "EDFDVBD6EXAMPLE",
          "eventType": "origin-response",
          "requestId": "4TyzHTaYWb1GX1qTfsHhEqV6HUDd_BzoBZnwfnvQc_1oF26ClkoUSEQ=="
        },
        "request": {
          "clientIp": "203.0.113.178",
          "headers": {
            "x-forwarded-for": [
              {
                "key": "X-Forwarded-For",
                "value": "203.0.113.178"
              }
            ],
            "user-agent": [
              {
                "key": "User-Agent",
                "value": "Amazon CloudFront"
              }
            ],
            "via": [
              {
                "key": "Via",
                "value": "2.0 8f22423015641505b8c857a37450d6c0.cloudfront.net (CloudFront)"
              }
            ],
            "host": [
              {
                "key": "Host",
                "value": "example.org"
              }
            ],
            "cache-control": [
              {
                "key": "Cache-Control",
                "value": "no-cache"
              }
            ]
          },
          "method": "GET",
          "origin": {
            "custom": {
              "customHeaders": {},
              "domainName": "example.org",
              "keepaliveTimeout": 5,
              "path": "",
              "port": 443,
              "protocol": "https",
              "readTimeout": 30,
              "responseCompletionTimeout": 30,
              "sslProtocols": [
                "TLSv1",
                "TLSv1.1",
                "TLSv1.2"
              ]
            }
          },
          "querystring": "",
          "uri": "/"
        },
        "response": {
          "headers": {
            "access-control-allow-credentials": [
              {
                "key": "Access-Control-Allow-Credentials",
                "value": "true"
              }
            ],
            "access-control-allow-origin": [
              {
                "key": "Access-Control-Allow-Origin",
                "value": "*"
              }
            ],
            "date": [
              {
                "key": "Date",
                "value": "Mon, 13 Jan 2020 20:12:38 GMT"
              }
            ],
            "referrer-policy": [
              {
                "key": "Referrer-Policy",
                "value": "no-referrer-when-downgrade"
              }
            ],
            "server": [
              {
                "key": "Server",
                "value": "ExampleCustomOriginServer"
              }
            ],
            "x-content-type-options": [
              {
                "key": "X-Content-Type-Options",
                "value": "nosniff"
              }
            ],
            "x-frame-options": [
              {
                "key": "X-Frame-Options",
                "value": "DENY"
              }
            ],
            "x-xss-protection": [
              {
                "key": "X-XSS-Protection",
                "value": "1; mode=block"
              }
            ],
            "content-type": [
              {
                "key": "Content-Type",
                "value": "text/html; charset=utf-8"
              }
            ],
            "content-length": [
              {
                "key": "Content-Length",
                "value": "9593"
              }
            ]
          },
          "status": "200",
          "statusDescription": "OK"
        }
      }
    }
  ]
}
```

### Contoh respons penampil
<a name="lambda-event-structure-response-viewer"></a>

Contoh berikut menunjukkan objek acara respons penampil.

```
{
  "Records": [
    {
      "cf": {
        "config": {
          "distributionDomainName": "d111111abcdef8.cloudfront.net",
          "distributionId": "EDFDVBD6EXAMPLE",
          "eventType": "viewer-response",
          "requestId": "4TyzHTaYWb1GX1qTfsHhEqV6HUDd_BzoBZnwfnvQc_1oF26ClkoUSEQ=="
        },
        "request": {
          "clientIp": "203.0.113.178",
          "headers": {
            "host": [
              {
                "key": "Host",
                "value": "d111111abcdef8.cloudfront.net"
              }
            ],
            "user-agent": [
              {
                "key": "User-Agent",
                "value": "curl/7.66.0"
              }
            ],
            "accept": [
              {
                "key": "accept",
                "value": "*/*"
              }
            ]
          },
          "method": "GET",
          "querystring": "",
          "uri": "/"
        },
        "response": {
          "headers": {
            "access-control-allow-credentials": [
              {
                "key": "Access-Control-Allow-Credentials",
                "value": "true"
              }
            ],
            "access-control-allow-origin": [
              {
                "key": "Access-Control-Allow-Origin",
                "value": "*"
              }
            ],
            "date": [
              {
                "key": "Date",
                "value": "Mon, 13 Jan 2020 20:14:56 GMT"
              }
            ],
            "referrer-policy": [
              {
                "key": "Referrer-Policy",
                "value": "no-referrer-when-downgrade"
              }
            ],
            "server": [
              {
                "key": "Server",
                "value": "ExampleCustomOriginServer"
              }
            ],
            "x-content-type-options": [
              {
                "key": "X-Content-Type-Options",
                "value": "nosniff"
              }
            ],
            "x-frame-options": [
              {
                "key": "X-Frame-Options",
                "value": "DENY"
              }
            ],
            "x-xss-protection": [
              {
                "key": "X-XSS-Protection",
                "value": "1; mode=block"
              }
            ],
            "age": [
              {
                "key": "Age",
                "value": "2402"
              }
            ],
            "content-type": [
              {
                "key": "Content-Type",
                "value": "text/html; charset=utf-8"
              }
            ],
            "content-length": [
              {
                "key": "Content-Length",
                "value": "9593"
              }
            ]
          },
          "status": "200",
          "statusDescription": "OK"
        }
      }
    }
  ]
}
```

### Bidang acara respons
<a name="response-event-fields"></a>

Data objek peristiwa respons dimuat dalam tiga subobjek: `config` (`Records.cf.config`), `request` (`Records.cf.request`), dan `response` (`Records.cf.response`). Untuk informasi lebih lanjut tentang bidang di objek permintaan, lihat [Bidang di objek permintaan](#request-event-fields-request). Daftar berikut menjelaskan bidang dalam `config` dan `response` subobjects.

#### Bidang di objek konfigurasi
<a name="response-event-fields-config"></a>

Daftar berikut menjelaskan bidang dalam `config` objek (`Records.cf.config`).

**`distributionDomainName` (hanya baca)**  
Nama domain distribusi yang terkait dengan respons.

**`distributionID` (hanya baca)**  
ID distribusi yang terkait dengan respons.

**`eventType` (hanya baca)**  
Jenis pemicu yang terkait dengan respons: `origin-response` atau`viewer-response`.

**`requestId` (hanya baca)**  
String terenkripsi yang secara unik mengidentifikasi viewer-to-CloudFront permintaan yang terkait dengan respons ini. `requestId`Nilai juga muncul di log CloudFront akses sebagai`x-edge-request-id`. Untuk informasi selengkapnya, lihat [Akses log (log standar)](AccessLogs.md) dan [Bidang file log](standard-logs-reference.md#BasicDistributionFileFormat).

#### Bidang di objek respons
<a name="response-event-fields-response"></a>

Daftar berikut menjelaskan bidang dalam `response` objek (`Records.cf.response`). Untuk informasi tentang penggunaan fungsi Lambda@Edge untuk membuat respons HTTP, lihat [Hasilkan respons HTTP dalam pemicu permintaan](lambda-generating-http-responses.md#lambda-generating-http-responses-in-requests).

**`headers` (baca/tulis)**  
Header dalam respons. Perhatikan hal-hal berikut:  
+ Kunci dalam `headers` objek adalah versi huruf kecil nama header HTTP standar. Menggunakan tombol huruf kecil memberi Anda akses huruf kecil ke nilai header.
+ Setiap objek header (misalnya, `headers["content-type"]` atau `headers["content-length"]`) adalah serangkaian pasangan utama-nilai. Untuk header tertentu, larik berisi satu pasangan nilai kunci untuk setiap nilai dalam respons.
+ `key`berisi nama case-sensitive header seperti yang muncul dalam respons HTTP; misalnya,,, `Content-Type` `Content-Length``Cookie`, dan sebagainya.
+ `value` berisi nilai header sebagaimana muncul dalam respons HTTP.
+ Ketika fungsi Lambda Anda menambahkan atau memodifikasi header respons dan Anda tidak menyertakan bidang header`key`, Lambda @Edge secara otomatis menyisipkan header `key` menggunakan nama header yang Anda berikan. Terlepas dari bagaimana Anda telah memformat nama header, kunci header yang dimasukkan secara otomatis diformat dengan kapitalisasi awal untuk setiap bagian, dipisahkan oleh tanda hubung (-).

  Misalnya, Anda dapat menambahkan header seperti berikut, tanpa header `key`:

  ```
  "content-type": [
    {
      "value": "text/html;charset=UTF-8"
    }
  ]
  ```

  Dalam contoh ini, Lambda@Edge secara otomatis memasukkan `"key": "Content-Type"`.
Untuk informasi tentang pembatasan penggunaan header, lihat [Pembatasan pada fungsi edge](edge-functions-restrictions.md).

**`status`**  
Kode status HTTP dari respons.

**`statusDescription`**  
Deskripsi status HTTP untuk respons.