0Pricing
Cloud & IT Cert Prep · Pelajaran

Lambda@Edge dan Pola Berbasis Peristiwa

Jalankan fungsi di lokasi edge CloudFront dan hubungkan Lambda ke SQS, SNS, DynamoDB Streams, dan Kinesis untuk arsitektur berbasis peristiwa.

Lambda@Edge dan Pola Berbasis Peristiwa adalah pelajaran Cloud & IT Cert Prep gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cloud & IT Cert Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.

Apa Itu Lambda@Edge

Lambda@Edge memungkinkan Anda menjalankan fungsi Lambda di lokasi edge CloudFront di seluruh dunia—lebih dekat dengan pengguna akhir—alih-alih di Region terpusat. Hal ini memungkinkan Anda menyesuaikan permintaan dan respons HTTP dengan latensi tambahan submilidetik pada lapisan CDN. Fungsi Lambda@Edge di-deploy secara global dan dipanggil pada setiap peristiwa cache hit atau cache miss CloudFront, sehingga ideal untuk tugas manipulasi permintaan yang ringan.

Empat Titik Pemicu CloudFront

Lambda@Edge dapat mencegat lalu lintas pada empat titik dalam siklus hidup permintaan CloudFront:

  • Permintaan Viewer: dijalankan saat CloudFront menerima permintaan dari viewer (pengguna), sebelum memeriksa tembolok
  • Permintaan Origin: dijalankan saat CloudFront meneruskan cache miss ke origin
  • Respons Origin: dijalankan saat origin mengembalikan respons sebelum disimpan dalam tembolok
  • Respons Viewer: dijalankan sebelum CloudFront mengembalikan respons kepada viewer

Keterbatasan Lambda@Edge dibandingkan Lambda Biasa

Lambda@Edge memiliki batas yang lebih ketat daripada Lambda biasa: memori maksimum 128 MB (peristiwa viewer), 1 GB (peristiwa origin), batas waktu maksimum 5 detik (viewer), dan 30 detik (origin). Fungsi harus dibuat di us-east-1 dan di-deploy ke edge melalui CloudFront. Tidak ada dukungan VPC, variabel lingkungan, atau Lambda Layer. Batasan ini berarti Lambda@Edge dirancang untuk transformasi ringan, bukan pemrosesan berat.

Kasus Penggunaan Umum Lambda@Edge

Lambda@Edge sangat cocok untuk: pengujian A/B (menulis ulang URL ke jalur origin yang berbeda berdasarkan cookie), autentikasi (memvalidasi JWT di edge sebelum meneruskannya ke origin), manipulasi header HTTP (menambahkan header keamanan seperti HSTS, CSP, X-Frame-Options), normalisasi URL (mengalihkan www ke non-www atau memaksakan garis miring di akhir), dan personalisasi (menyajikan konten berbeda berdasarkan negara viewer dari header CloudFront-Viewer-Country).

// Viewer Request: Add security headers
exports.handler = async (event) => {
    const response = event.Records[0].cf.response;
    response.headers['strict-transport-security'] = [{
        key: 'Strict-Transport-Security',
        value: 'max-age=63072000; includeSubdomains; preload'
    }];
    response.headers['x-frame-options'] = [{
        key: 'X-Frame-Options',
        value: 'DENY'
    }];
    return response;
};

CloudFront Functions vs Lambda@Edge

CloudFront Functions adalah fungsi JavaScript yang sangat ringan dan hanya berjalan pada tahap permintaan/respons viewer, dengan batas waktu eksekusi 2 ms serta biaya yang jauh lebih rendah. Untuk kasus penggunaan sederhana (penulisan ulang URL, manipulasi header, normalisasi kunci tembolok), CloudFront Functions lebih disarankan daripada Lambda@Edge karena lebih cepat dan murah. Gunakan Lambda@Edge jika Anda memerlukan akses ke panggilan jaringan, muatan yang lebih besar, atau titik pemicu permintaan/respons origin.

Arsitektur Berbasis Peristiwa dengan Lambda

Arsitektur berbasis peristiwa menghubungkan layanan melalui peristiwa—pesan yang merepresentasikan sesuatu yang telah terjadi. Di AWS, Lambda merupakan konsumen peristiwa utama: Lambda menerima peristiwa dari SQS, SNS, DynamoDB Streams, Kinesis, S3, EventBridge, dan layanan lainnya. Setiap peristiwa memicu eksekusi Lambda, sehingga sistem dapat merespons secara asinkron dan independen tanpa keterikatan yang erat. Pola ini memungkinkan keterikatan longgar, penskalaan independen, dan isolasi kesalahan.

Lambda sebagai Konsumen SQS

Lambda dapat dikonfigurasikan sebagai pemetaan sumber peristiwa untuk SQS. Lambda melakukan polling pada antrean, mengambil hingga ukuran batch pesan (hingga 10.000 untuk antrean standar, 10 untuk FIFO), lalu memanggil fungsi sekali untuk setiap batch. Jika fungsi gagal, seluruh batch dikembalikan ke antrean. Konfigurasikan jendela batch untuk menunggu lebih banyak pesan sebelum melakukan pemanggilan, sehingga throughput meningkat. Gunakan DLQ pada antrean SQS sumber untuk pesan yang berulang kali gagal.

aws lambda create-event-source-mapping \
  --function-name 'OrderProcessor' \
  --event-source-arn 'arn:aws:sqs:us-east-1:123456789012:OrderQueue' \
  --batch-size 10 \
  --maximum-batching-window-in-seconds 5

Lambda dengan DynamoDB Streams

DynamoDB Streams menangkap setiap perubahan pada tingkat item (INSERT, MODIFY, REMOVE) sebagai urutan peristiwa yang terurut. Lambda membaca stream menggunakan pemetaan sumber peristiwa dengan TRIM_HORIZON (dimulai dari yang paling lama) atau LATEST (dimulai dari yang paling baru). Lambda memproses catatan secara berurutan dalam satu partisi. Batch yang gagal akan menghalangi pemrosesan lebih lanjut pada partisi yang sama sampai masalahnya diselesaikan—gunakan pembagian saat terjadi kesalahan untuk memisahkan batch yang gagal dan mengisolasi catatan bermasalah.

aws lambda create-event-source-mapping \
  --function-name 'StreamProcessor' \
  --event-source-arn 'arn:aws:dynamodb:us-east-1:123456789012:table/Orders/stream/...' \
  --starting-position TRIM_HORIZON \
  --batch-size 100 \
  --bisect-batch-on-function-error

Lambda dengan Kinesis Data Streams

Lambda memproses catatan Kinesis dengan cara yang mirip dengan DynamoDB Streams—satu eksekusi bersamaan per shard. Opsi konfigurasi utama mencakup faktor paralelisasi (hingga 10 pemanggilan Lambda bersamaan per shard, dengan pemrosesan sub-batch secara paralel) dan fan-out yang ditingkatkan (throughput khusus sebesar 2 MB/detik per shard untuk konsumen Lambda). Opsi ini secara signifikan meningkatkan throughput untuk stream bervolume tinggi tanpa menambah jumlah shard.

EventBridge sebagai Perute Peristiwa

Amazon EventBridge adalah bus peristiwa yang direkomendasikan untuk menghubungkan layanan AWS dan aplikasi khusus. Peristiwa mengalir ke bus, lalu aturan menyaring peristiwa berdasarkan pola dan merutekannya ke target, termasuk Lambda, SQS, Step Functions, dan lainnya. EventBridge sepenuhnya memisahkan produsen peristiwa dari konsumen—keduanya tidak perlu mengetahui satu sama lain. Bus peristiwa default menerima peristiwa dari layanan AWS; buat bus peristiwa khusus untuk peristiwa aplikasi Anda.

aws events put-rule \
  --name 'OrderPlacedRule' \
  --event-pattern '{"source": ["com.myapp.orders"], "detail-type": ["OrderPlaced"]}' \
  --state ENABLED

aws events put-targets \
  --rule 'OrderPlacedRule' \
  --targets 'Id=LambdaTarget,Arn=arn:aws:lambda:us-east-1:123456789012:function:InventoryUpdater'

Pola Fan-Out: SNS ke Beberapa Lambda

Pola berbasis peristiwa yang umum adalah fan-out: satu peristiwa memicu beberapa pipeline pemrosesan secara paralel. Terbitkan pesan ke topik SNS, lalu beberapa langganan fungsi Lambda masing-masing merespons secara independen. Misalnya, peristiwa pesanan dibuat dapat disebarkan ke: Lambda yang mengirim email konfirmasi, Lambda yang memperbarui inventaris, dan Lambda yang memberi tahu gudang. Setiap konsumen bersifat independen dan diskalakan secara terpisah—tidak ada satu konsumen pun yang dapat menghalangi konsumen lainnya.

Pemeriksaan Singkat

Uji pemahaman Anda tentang konsep AWS Solutions Architect (SAA-C03) dari pelajaran ini.

Rangkuman Pelajaran

Dalam pelajaran ini Anda telah mempelajari bahwa Lambda@Edge menjalankan fungsi di lokasi edge CloudFront dengan empat titik pemicu (permintaan/respons viewer dan permintaan/respons origin) untuk tugas seperti autentikasi, penulisan ulang URL, dan manipulasi header; CloudFront Functions merupakan alternatif dengan biaya dan latensi lebih rendah untuk transformasi sederhana pada tahap viewer; serta pola berbasis peristiwa menggunakan SQS, DynamoDB Streams, Kinesis, EventBridge, dan fan-out SNS memungkinkan arsitektur dengan keterikatan longgar, tempat Lambda merespons peristiwa secara waktu nyata. Selanjutnya, kita akan membahas Antrean SQS Standard vs FIFO.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Lambda@Edge dan Pola Berbasis Peristiwa” gratis?

Ya — teks lengkap “Lambda@Edge dan Pola Berbasis Peristiwa” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cloud & IT Cert Prep, upgrade ke CoddyKit PRO. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Lambda@Edge dan Pola Berbasis Peristiwa”?

Jalankan fungsi di lokasi edge CloudFront dan hubungkan Lambda ke SQS, SNS, DynamoDB Streams, dan Kinesis untuk arsitektur berbasis peristiwa. Kamu berlatih Cloud & IT Cert Prep dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Cloud & IT Cert Prep?

Tidak diperlukan pengalaman sebelumnya. Cloud & IT Cert Prep di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Lambda@Edge dan Pola Berbasis Peristiwa” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Cloud & IT Cert Prep ini?

Ya. Setiap pelajaran Cloud & IT Cert Prep menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Fungsi Lambda: Waktu Proses, Pemicu, dan Penangan
  2. Konkruensi, Pembatasan, dan Konkruensi Terreservasi
  3. Lapisan Lambda dan Paket Penerapan
  4. Lambda@Edge dan Pola Berbasis Peristiwa
← Kembali ke Cloud & IT Cert Prep