Lambda@Edge dan Corak Didorong Peristiwa
Jalankan fungsi di lokasi pinggir CloudFront dan sambungkan Lambda kepada SQS, SNS, Strim DynamoDB dan Kinesis untuk seni bina didorong peristiwa.
Lambda@Edge dan Corak Didorong Peristiwa ialah pelajaran AWS Solutions Architect percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran AWS Solutions Architect, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus AWS Solutions Architect merangkumi sejumlah 4 pelajaran.
Apakah Itu Lambda@Edge?
Lambda@Edge membolehkan anda menjalankan fungsi Lambda di lokasi pinggir CloudFront di seluruh dunia—lebih dekat dengan pengguna akhir—bukannya di Region berpusat. Ini membolehkan anda menyesuaikan permintaan dan respons HTTP dengan kependaman tambahan kurang daripada satu milisaat pada lapisan CDN. Fungsi Lambda@Edge dilancarkan secara global dan dipanggil pada setiap peristiwa cache hit atau cache miss CloudFront, menjadikannya sesuai untuk tugas manipulasi permintaan yang ringan.
Empat Titik Pencetus CloudFront
Lambda@Edge boleh memintas trafik pada empat titik dalam kitar hayat permintaan CloudFront:
- Permintaan Pemapar: dicetuskan apabila CloudFront menerima permintaan daripada pemapar (pengguna), sebelum cache diperiksa
- Permintaan Asal: dicetuskan apabila CloudFront menghantar cache miss kepada asal
- Respons Asal: dicetuskan apabila asal mengembalikan respons sebelum respons tersebut disimpan dalam cache
- Respons Pemapar: dicetuskan sebelum CloudFront mengembalikan respons kepada pemapar
Had Lambda@Edge berbanding Lambda Biasa
Lambda@Edge mempunyai had yang lebih ketat berbanding Lambda biasa: memori maksimum 128 MB (peristiwa pemapar), 1 GB (peristiwa asal), masa tamat maksimum 5 saat (pemapar) dan 30 saat (asal). Fungsi mesti dicipta di us-east-1 dan dilancarkan ke pinggir melalui CloudFront. Tiada sokongan VPC, tiada pemboleh ubah persekitaran dan tiada Lapisan Lambda. Kekangan ini bermakna Lambda@Edge direka untuk transformasi ringan, bukannya pemprosesan berat.
Kes Penggunaan Lambda@Edge yang Lazim
Lambda@Edge amat sesuai untuk: ujian A/B (menulis semula URL kepada laluan asal yang berbeza berdasarkan kuki), pengesahan (mengesahkan JWT di pinggir sebelum menghantarnya kepada asal), manipulasi pengepala HTTP (menambah pengepala keselamatan seperti HSTS, CSP dan X-Frame-Options), penyeragaman URL (mengubah hala www kepada bukan www atau menguatkuasakan garis miring penutup) serta pemperibadian (menyajikan kandungan berbeza berdasarkan negara pemapar daripada pengepala 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 berbanding Lambda@Edge
CloudFront Functions ialah fungsi JavaScript yang sangat ringan dan hanya berjalan pada peringkat permintaan/respons pemapar, dengan had masa pelaksanaan 2 ms serta kos yang jauh lebih rendah. Untuk kes penggunaan mudah (penulisan semula URL, manipulasi pengepala dan penyeragaman kunci cache), CloudFront Functions lebih sesuai berbanding Lambda@Edge kerana lebih pantas dan murah. Gunakan Lambda@Edge apabila anda memerlukan akses kepada panggilan rangkaian, muatan yang lebih besar atau titik pencetus permintaan/respons asal.
Seni Bina Dipacu Peristiwa dengan Lambda
Seni bina dipacu peristiwa menghubungkan perkhidmatan melalui peristiwa—mesej yang mewakili sesuatu yang telah berlaku. Dalam AWS, Lambda ialah pengguna peristiwa utama: ia menerima peristiwa daripada SQS, SNS, DynamoDB Streams, Kinesis, S3, EventBridge dan banyak lagi. Setiap peristiwa mencetuskan pelaksanaan Lambda, membolehkan sistem bertindak balas secara tak segerak dan bebas tanpa gandingan rapat. Corak ini membolehkan gandingan longgar, penskalaan bebas dan pengasingan kerosakan.
Lambda sebagai Pengguna SQS
Lambda boleh dikonfigurasikan sebagai pemetaan sumber peristiwa untuk SQS. Lambda mengundi baris gilir, mendapatkan sehingga saiz kelompok mesej (sehingga 10,000 untuk baris gilir standard, 10 untuk FIFO) dan memanggil fungsi sekali bagi setiap kelompok. Jika fungsi gagal, seluruh kelompok dikembalikan ke baris gilir. Konfigurasikan tetingkap kelompok untuk menunggu mesej tambahan sebelum memanggil fungsi, sekali gus meningkatkan daya pemprosesan. Gunakan DLQ pada baris gilir SQS sumber untuk mesej 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 5Lambda dengan DynamoDB Streams
DynamoDB Streams menangkap setiap perubahan pada peringkat item (INSERT, MODIFY, REMOVE) sebagai urutan peristiwa yang tersusun. Lambda membaca daripada strim menggunakan pemetaan sumber peristiwa dengan TRIM_HORIZON (bermula dari yang paling lama) atau LATEST (bermula dari yang paling baharu). Lambda memproses rekod mengikut susunan dalam partition. Kelompok yang gagal akan menghalang pemprosesan lanjut bagi partition yang sama sehingga diselesaikan—gunakan pembahagian apabila ralat untuk memisahkan kelompok yang gagal dan mengasingkan rekod 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-errorLambda dengan Kinesis Data Streams
Lambda memproses rekod Kinesis dengan cara yang serupa seperti DynamoDB Streams—satu pelaksanaan serentak bagi setiap pecahan. Pilihan konfigurasi utama termasuk faktor selari (sehingga 10 panggilan Lambda serentak bagi setiap pecahan, dengan memproses subkelompok secara selari) dan pengedaran keluar dipertingkat (daya pemprosesan khusus 2 MB/s bagi setiap pecahan untuk pengguna Lambda). Pilihan ini meningkatkan daya pemprosesan dengan ketara bagi strim bervolum tinggi tanpa menambah bilangan pecahan.
EventBridge sebagai Penghala Peristiwa
Amazon EventBridge ialah bas peristiwa yang disyorkan untuk menghubungkan perkhidmatan AWS dan aplikasi tersuai. Peristiwa mengalir ke dalam bas, dan peraturan menapis peristiwa mengikut corak serta menghalakannya kepada sasaran termasuk Lambda, SQS, Step Functions dan banyak lagi. EventBridge menyahgandingkan pengeluar peristiwa daripada pengguna sepenuhnya—tiada satu pun yang mengetahui tentang yang lain. Bas peristiwa lalai menerima peristiwa daripada perkhidmatan AWS; cipta bas peristiwa tersuai 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'Corak Fan-Out: SNS kepada Beberapa Lambda
Corak dipacu peristiwa yang lazim ialah fan-out: satu peristiwa mencetuskan beberapa saluran pemprosesan selari. Terbitkan kepada topik SNS, dan beberapa langganan fungsi Lambda bertindak balas secara bebas. Sebagai contoh, peristiwa pesanan dibuat disebarkan kepada: Lambda yang menghantar e-mel pengesahan, Lambda yang mengemas kini inventori dan Lambda yang memberitahu gudang. Setiap pengguna adalah bebas dan diskala secara berasingan—tiada pengguna tunggal yang boleh menghalang pengguna lain.
Semakan Pantas
Uji pemahaman anda tentang konsep AWS Solutions Architect (SAA-C03) daripada pelajaran ini.
Imbas Kembali Pelajaran
Dalam pelajaran ini, anda telah mempelajari bahawa: Lambda@Edge menjalankan fungsi di lokasi pinggir CloudFront dengan empat titik pencetus (permintaan/respons pemapar, permintaan/respons asal) untuk tugas seperti pengesahan, penulisan semula URL dan manipulasi pengepala; CloudFront Functions ialah alternatif berkos lebih rendah dan berkependaman lebih rendah untuk transformasi mudah pada peringkat pemapar; dan corak dipacu peristiwa yang menggunakan SQS, DynamoDB Streams, Kinesis, EventBridge serta fan-out SNS membolehkan seni bina bergandingan longgar apabila Lambda bertindak balas terhadap peristiwa masa nyata. Seterusnya, kita akan meneroka Baris Gilir SQS Standard berbanding FIFO.
Pelajari AWS Solutions Architect dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Soalan Lazim
Adakah pelajaran “Lambda@Edge dan Corak Didorong Peristiwa” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran AWS Solutions Architect, termasuk “Lambda@Edge dan Corak Didorong Peristiwa”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus AWS Solutions Architect merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Lambda@Edge dan Corak Didorong Peristiwa”?
Jalankan fungsi di lokasi pinggir CloudFront dan sambungkan Lambda kepada SQS, SNS, Strim DynamoDB dan Kinesis untuk seni bina didorong peristiwa. Anda berlatih AWS Solutions Architect menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan AWS Solutions Architect?
Tiada pengalaman terdahulu diperlukan. Pembelajaran AWS Solutions Architect di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Lambda@Edge dan Corak Didorong Peristiwa” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran AWS Solutions Architect ini?
Ya. Setiap pelajaran AWS Solutions Architect menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Fungsi Lambda: Masa Jalan, Pencetus dan Pengendali
- Keserentakan, Pendikitan dan Keserentakan Terpelihara
- Lapisan Lambda dan Pakej Penggunaan
- Lambda@Edge dan Corak Didorong Peristiwa