

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

# Tambahkan pemicu untuk fungsi Lambda @Edge
<a name="lambda-edge-add-triggers"></a>

Pemicu Lambda @Edge adalah salah satu kombinasi dari CloudFront distribusi, perilaku cache, dan peristiwa yang menyebabkan fungsi dijalankan. Misalnya, Anda dapat membuat pemicu yang menyebabkan fungsi dijalankan saat CloudFront menerima permintaan dari penampil untuk perilaku cache tertentu yang Anda siapkan untuk distribusi Anda. Anda dapat menentukan satu atau lebih CloudFront pemicu. 

**Tip**  
Saat membuat CloudFront distribusi, Anda menentukan setelan yang memberi tahu CloudFront cara merespons saat menerima permintaan yang berbeda. Pengaturan default disebut *perilaku cache default* untuk distribusi. Anda dapat mengatur perilaku cache tambahan yang menentukan cara CloudFront merespons dalam keadaan tertentu, misalnya, saat menerima permintaan untuk jenis file tertentu. Untuk informasi selengkapnya, lihat [Pengaturan perilaku cache](DownloadDistValuesCacheBehavior.md).

Saat pertama kali membuat fungsi Lambda, Anda hanya dapat menentukan *satu* pemicu. Anda dapat menambahkan lebih banyak pemicu ke fungsi yang sama nanti dengan menggunakan konsol Lambda atau dengan mengedit distribusi di CloudFront konsol.
+ Konsol Lambda berfungsi dengan baik jika Anda ingin menambahkan lebih banyak pemicu ke fungsi untuk distribusi yang sama. CloudFront 
+  CloudFront Konsol bisa lebih baik jika Anda ingin menambahkan pemicu untuk beberapa distribusi karena lebih mudah untuk menemukan distribusi yang ingin Anda perbarui. Anda juga dapat memperbarui CloudFront pengaturan lain secara bersamaan.

**Topics**
+ [CloudFront peristiwa yang dapat memicu fungsi Lambda @Edge](lambda-cloudfront-trigger-events.md)
+ [Pilih acara untuk memicu fungsi](lambda-how-to-choose-event.md)
+ [Tambahkan pemicu ke fungsi Lambda @Edge](lambda-edge-add-triggers-console.md)

# CloudFront peristiwa yang dapat memicu fungsi Lambda @Edge
<a name="lambda-cloudfront-trigger-events"></a>

Untuk setiap perilaku cache dalam CloudFront distribusi Amazon, Anda dapat menambahkan hingga empat pemicu (asosiasi) yang menyebabkan fungsi Lambda dijalankan saat peristiwa CloudFront tertentu terjadi. CloudFront pemicu dapat didasarkan pada salah satu dari empat CloudFront peristiwa, seperti yang ditunjukkan pada diagram berikut.

![\[Grafik konseptual yang menunjukkan bagaimana peristiwa CloudFront pemicu untuk fungsi Lambda terintegrasi dengan. CloudFront\]](http://docs.aws.amazon.com/id_id/AmazonCloudFront/latest/DeveloperGuide/images/cloudfront-events-that-trigger-lambda-functions.png)


 CloudFront Peristiwa yang dapat digunakan untuk memicu fungsi Lambda @Edge adalah sebagai berikut:

**Permintaan penampil**  
Fungsi dijalankan ketika CloudFront menerima permintaan dari penampil, sebelum memeriksa untuk melihat apakah objek yang diminta ada dalam CloudFront cache.  
Fungsi tidak dijalankan dalam kasus berikut:  
+ Saat mengambil halaman kesalahan kustom.
+ Ketika CloudFront secara otomatis mengalihkan permintaan HTTP ke HTTPS (ketika nilai [Kebijakan protokol penampil](DownloadDistValuesCacheBehavior.md#DownloadDistValuesViewerProtocolPolicy) adalah **Redirect HTTP ke** HTTPS).

**Permintaan asal**  
Fungsi dijalankan *hanya* ketika CloudFront meneruskan permintaan ke asal Anda. Ketika objek yang diminta ada di CloudFront cache, fungsi tidak dijalankan.

**Respons asal**  
Fungsi mengeksekusi setelah CloudFront menerima respon dari asal dan sebelum cache objek dalam respon. Perhatikan bahwa fungsi menjalankan bahkan jika kesalahan dikembalikan dari asal.  
Fungsi tidak dijalankan dalam kasus berikut:  
+ Ketika file yang diminta dalam CloudFront cache dan tidak kedaluwarsa.
+ Saat respons dihasilkan dari fungsi yang dipicu oleh peristiwa permintaan asal.

**Respons penampil**  
Fungsi menjalankan sebelum mengembalikan file yang diminta ke penampil. Perhatikan bahwa fungsi dijalankan terlepas dari apakah file sudah dalam CloudFront cache.  
Fungsi tidak dijalankan dalam kasus berikut:  
+ Saat asal mengembalikan kode status HTTP sebesar 400 atau lebih.
+ Saat halaman kesalahan kustom dikembalikan.
+ Saat respons dihasilkan dari fungsi yang dipicu oleh peristiwa permintaan penampil.
+ Ketika CloudFront secara otomatis mengalihkan permintaan HTTP ke HTTPS (ketika nilai [Kebijakan protokol penampil](DownloadDistValuesCacheBehavior.md#DownloadDistValuesViewerProtocolPolicy) adalah **Redirect HTTP ke** HTTPS).

Saat Anda menambahkan beberapa pemicu ke perilaku cache yang sama, Anda dapat menggunakannya untuk menjalankan fungsi yang sama atau menjalankan fungsi yang berbeda untuk setiap pemicu. Anda juga dapat mengaitkan fungsi yang sama dengan lebih dari satu distribusi.

**catatan**  
Ketika sebuah CloudFront peristiwa memicu eksekusi fungsi Lambda, fungsi harus *selesai* CloudFront sebelum dapat melanjutkan.   
Misalnya, jika fungsi Lambda dipicu oleh peristiwa permintaan CloudFront penampil, tidak CloudFront akan mengembalikan respons ke penampil atau meneruskan permintaan ke asal hingga fungsi Lambda selesai berjalan.   
Ini berarti bahwa setiap permintaan yang memicu fungsi Lambda meningkatkan latensi untuk permintaan, jadi Anda ingin fungsi tersebut dijalankan secepat mungkin.

# Pilih acara untuk memicu fungsi
<a name="lambda-how-to-choose-event"></a>

Saat Anda memutuskan CloudFront acara mana yang ingin Anda gunakan untuk memicu fungsi Lambda, pertimbangkan hal berikut:

**Saya CloudFront ingin menyimpan objek yang diubah oleh fungsi Lambda**  
Untuk cache objek yang telah dimodifikasi oleh fungsi Lambda sehingga CloudFront dapat melayani objek dari lokasi tepi saat diminta berikutnya, gunakan *permintaan asal* atau peristiwa *respons asal*.   
Ini mengurangi beban dari awal, mengurangi latensi untuk permintaan berikutnya, dan mengurangi biaya dari invoking Lambda@Edge pada permintaan berikutnya.  
Misalnya, jika Anda ingin menambahkan, menghapus, atau mengubah header untuk objek yang dikembalikan oleh asal dan Anda CloudFront ingin menyimpan hasil cache, gunakan peristiwa respons asal.

**Saya ingin fungsi dijalankan untuk setiap permintaan**  
Untuk menjalankan fungsi untuk setiap permintaan yang CloudFront diterima untuk distribusi, gunakan *permintaan penampil* atau peristiwa *respons penampil*.   
Permintaan asal dan kejadian respons asal hanya terjadi ketika objek yang diminta tidak di-cache di lokasi tepi dan CloudFront meneruskan permintaan ke asal.

**Saya ingin fungsinya mengubah kunci cache**  
Untuk mengubah nilai yang Anda gunakan sebagai dasar untuk caching, gunakan acara *permintaan penampil*.   
Misalnya, jika fungsi mengubah URL untuk menyertakan singkatan bahasa pada jalur (misalnya, karena pengguna memilih bahasa dari daftar tarik turun), gunakan acara permintaan penampil:  
+ **URL dalam permintaan penampil** - https://example.com/en/ index.html
+ **URL ketika permintaan berasal dari alamat IP di Jerman** https://example.com/de/ - index.html
Anda juga menggunakan acara permintaan pemirsa jika Anda menyimpan cache berdasarkan cookie atau header permintaan.  
Jika fungsi mengubah cookie atau header, konfigurasikan CloudFront untuk meneruskan bagian permintaan yang berlaku ke asal. Untuk informasi selengkapnya, lihat topik berikut:  
+ [Konten cache berdasarkan cookie](Cookies.md)
+ [Konten cache berdasarkan header permintaan](header-caching.md)

**Fungsi mempengaruhi respon dari asal**  
Untuk mengubah permintaan dengan cara yang memengaruhi respons dari asal, gunakan peristiwa *permintaan asal*.   
Biasanya, sebagian besar peristiwa permintaan pemirsa tidak diteruskan ke asal. CloudFront menanggapi permintaan dengan objek yang sudah ada di cache tepi. Jika fungsi mengubah permintaan berdasarkan peristiwa permintaan asal, CloudFront cache respons ke permintaan asal yang diubah.

# Tambahkan pemicu ke fungsi Lambda @Edge
<a name="lambda-edge-add-triggers-console"></a>

Anda dapat menggunakan AWS Lambda konsol atau CloudFront konsol Amazon untuk menambahkan pemicu ke fungsi Lambda @Edge Anda.

**penting**  
Anda dapat membuat pemicu hanya untuk versi bernomor dari fungsi Anda (bukan **\$1LATEST**).

------
#### [ Lambda console ]<a name="lambda-edge-add-triggers-procedure"></a>

**Untuk menambahkan pemicu CloudFront acara ke fungsi Lambda @Edge**

1. Masuk ke Konsol Manajemen AWS dan buka AWS Lambda konsol di [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Pada daftar Wilayah di bagian atas halaman, pilih **AS Timur (N. Virginia)**.

1. Di **Fungsi** , pilih nama fungsi yang ingin Anda tambahkan pemicunya.

1. Pada halaman **Ikhtisar fungsi**, pilih tab **Versi**.

1. Pilih versi yang ingin Anda tambahkan pemicu.

   Setelah memilih versi, nama tombol berubah menjadi **Versi: \$1LATEST** atau **Versi:** *nomor versi*.

1. Pilih **Pemicu** tab.

1. Pilih **Tambahkan pemicu**.

1. Untuk **konfigurasi Trigger**, **pilih Pilih sumber****cloudfront**, masukkan, lalu pilih **CloudFront**.
**catatan**  
Jika Anda sudah membuat satu atau lebih pemicu, CloudFront adalah layanan default.

1. Tentukan nilai berikut untuk menunjukkan kapan Anda ingin fungsi Lambda menjalankan.

   1. **Distribusi** - Pilih distribusi yang ingin Anda tambahkan pemicu.

   1. **Perilaku cache** - Pilih perilaku cache yang menentukan objek yang ingin Anda jalankan fungsinya.
**catatan**  
Jika Anda menentukan `*` untuk perilaku cache, fungsi Lambda menerapkan perilaku cache default.

   1. **CloudFront event** — Pilih CloudFront acara yang menyebabkan fungsi dijalankan.

   1. **Sertakan isi** - Pilih kotak centang ini jika Anda ingin mengakses badan permintaan dalam fungsi Anda. 

   1. **Konfirmasikan penerapan ke Lambda** @Edge — Pilih kotak centang ini AWS Lambda sehingga mereplikasi fungsi ke global. Wilayah AWS 

1. Pilih **Tambahkan**.

   Fungsi mulai memproses permintaan untuk CloudFront peristiwa yang ditentukan saat CloudFront distribusi yang diperbarui diterapkan. Untuk menentukan apakah distribusi diterapkan, pilih **Distribusi** dalam panel navigasi. Ketika distribusi diterapkan, nilai kolom **Status** untuk distribusi berubah dari **Deploying ke tanggal dan waktu penerapan**.

------
#### [ CloudFront console ]<a name="lambda-create-functions-add-triggers-cloudfront-console-procedure"></a>

**Untuk menambahkan pemicu CloudFront acara ke fungsi Lambda @Edge**

1. Dapatkan ARN dari fungsi Lambda yang ingin Anda tambahkan pemicu untuk:

   1. Masuk ke Konsol Manajemen AWS dan buka AWS Lambda konsol di [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

   1. Pada daftar Wilayah di bagian atas halaman, pilih **AS Timur (N. Virginia)**.

   1. Dalam daftar fungsi, pilih nama fungsi yang ingin Anda tambahkan pemicunya.

   1. Pada halaman **Ikhtisar fungsi**, pilih tab **Versi**, dan pilih versi bernomor yang ingin Anda tambahkan pemicu.

   1. Pilih **Salin ARN** tombol untuk menyalin ARN ke clipboard Anda. ARN untuk fungsi Lambda terlihat seperti ini:

      `arn:aws:lambda:us-east-1:123456789012:function:TestFunction:2`

      Nomor di bagian akhir (**2** dalam contoh ini) adalah nomor versi fungsi.

1. Buka CloudFront konsol di[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. Dalam daftar distribusi, pilih ID distribusi yang ingin Anda tambahkan pemicunya.

1. Pilih **Perilaku** tab.

1. Pilih perilaku cache yang ingin Anda tambahkan pemicu, lalu pilih **Edit**.

1. Untuk **asosiasi Fungsi**, dalam daftar **Jenis fungsi**, pilih **Lambda @Edge** untuk saat Anda ingin menjalankan fungsi: untuk permintaan penampil, respons penampil, permintaan asal, atau respons asal. 

   Untuk informasi selengkapnya, lihat [Pilih acara untuk memicu fungsi](lambda-how-to-choose-event.md).

1. Di kotak teks **Fungsi ARN/Nama**, tempel ARN dari fungsi Lambda yang ingin Anda jalankan saat acara yang dipilih terjadi. Ini adalah nilai yang Anda salin dari konsol Lambda.

1. Pilih **Sertakan** isi jika Anda ingin mengakses badan permintaan dalam fungsi Anda.

   Jika Anda hanya ingin mengganti badan permintaan, Anda tidak perlu memilih opsi ini.

1. Untuk menjalankan fungsi yang sama untuk lebih banyak jenis acara, ulangi langkah 6 dan 7.

1. Pilih **Simpan perubahan**.

1. Untuk menambahkan pemicu ke lebih banyak perilaku cache untuk distribusi ini, ulangi langkah 5 hingga 10.

   Fungsi mulai memproses permintaan untuk CloudFront peristiwa yang ditentukan saat CloudFront distribusi yang diperbarui diterapkan. Untuk menentukan apakah distribusi diterapkan, pilih **Distribusi** dalam panel navigasi. Saat distribusi diterapkan, nilai kolom **Status** untuk distribusi berubah dari **Deploying ke waktu dan tanggal penerapan**.

------