Lapisan Lambda dan Paket Penerapan
Gabungkan dependensi bersama ke dalam Lapisan Lambda yang dapat digunakan kembali dan kelola paket penerapan untuk waktu proses berukuran besar.
Lapisan Lambda dan Paket Penerapan adalah pelajaran Cloud & IT Cert Prep gratis di CoddyKit. Ini adalah pelajaran 3 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.
Masalah Dependensi di Lambda
Paket penerapan Lambda harus mandiri—semua dependensi (pustaka, SDK, biner) harus disertakan dalam ZIP. Hal ini dengan cepat memperbesar ukuran paket: fungsi ilmu data Python dengan NumPy, Pandas, dan SciPy dapat melebihi 200 MB setelah diekstrak. Setiap pembaruan pada kode fungsi mengharuskan Anda mengunggah ulang seluruh bundel, termasuk pustaka yang tidak berubah. Lapisan Lambda mengatasi masalah ini dengan memisahkan dependensi bersama dari kode fungsi Anda.
Apa Itu Lambda Layer
Lambda Layer adalah arsip ZIP yang berisi pustaka, runtime khusus, data, atau file konfigurasi. Layer disimpan terpisah dari kode fungsi Anda dan dipasang ke lingkungan eksekusi fungsi di /opt. Beberapa fungsi dapat menggunakan layer yang sama—perbarui layer sekali, dan setiap fungsi yang menggunakannya akan mendapatkan manfaatnya. Setiap fungsi Lambda dapat memiliki hingga 5 layer, dan ukuran gabungan setelah diekstrak harus tetap di bawah 250 MB.
Membuat dan Menerbitkan Layer
Untuk membuat layer, kemas dependensi Anda dalam struktur direktori yang sesuai dengan runtime yang digunakan (misalnya, python/lib/python3.12/site-packages/ untuk Python), kompres menjadi ZIP, lalu terbitkan. Setelah diterbitkan, layer akan mendapatkan ARN versi. Gunakan ARN ini saat memasang layer ke fungsi. Versi baru dibuat setiap kali Anda memperbarui layer; fungsi akan terus menggunakan versi yang telah dikonfigurasikan untuknya sampai Anda memperbaruinya secara eksplisit.
# Build layer for Python
mkdir -p layer/python
pip install pandas numpy -t layer/python/
cd layer && zip -r ../my-data-layer.zip python/
# Publish the layer
aws lambda publish-layer-version \
--layer-name 'DataScienceLayer' \
--zip-file fileb://my-data-layer.zip \
--compatible-runtimes python3.12 python3.11Memasang Layer ke Fungsi
Tambahkan layer ke fungsi menggunakan parameter --layers saat membuat atau memperbarui fungsi. Lambda memasang semua layer yang dilampirkan ke /opt sebelum fungsi dimulai. Paket Python di bawah /opt/python otomatis tersedia di jalur Python; modul Node.js di bawah /opt/nodejs/node_modules otomatis ditemukan. Kode fungsi Anda dapat menggunakan import atau require untuk memanggil paket layer seolah-olah paket tersebut dipasang secara lokal.
aws lambda update-function-configuration \
--function-name 'DataProcessor' \
--layers \
'arn:aws:lambda:us-east-1:123456789012:layer:DataScienceLayer:3' \
'arn:aws:lambda:us-east-1:123456789012:layer:UtilsLayer:1'Layer Publik yang Disediakan AWS
AWS menerbitkan layer resmi yang dapat Anda gunakan tanpa membuatnya sendiri. Contohnya mencakup layer AWS Lambda Powertools (logging terstruktur, pelacakan, tanda fitur), layer driver basis data, dan layer AWS Parameters and Secrets Lambda Extension untuk menyimpan nilai SSM/Secrets Manager secara lokal dalam tembolok. Vendor pihak ketiga seperti Datadog dan New Relic juga menerbitkan layer publik untuk agen pemantauan mereka. Periksa Repositori Aplikasi Tanpa Server dan konsol Lambda untuk melihat layer publik yang tersedia.
Ekstensi Lambda melalui Layer
Ekstensi Lambda berjalan sebagai proses terpisah bersama kode fungsi Anda dalam lingkungan eksekusi yang sama. Ekstensi terhubung ke peristiwa siklus hidup Lambda (inisialisasi, pemanggilan, penghentian) untuk melakukan tugas seperti pengumpulan telemetri, pemindaian keamanan, atau penyimpanan konfigurasi dalam tembolok. Ekstensi didistribusikan sebagai Lambda Layer. AWS menyediakan ekstensi CloudWatch Lambda Insights dan ekstensi AWS AppConfig; vendor menyediakan agen pemantauan khusus sebagai ekstensi.
Format Paket Deployment: ZIP vs Kontainer
Lambda mendukung dua format deployment:
- ZIP (hingga 50 MB terkompresi, 250 MB setelah diekstrak): unggah dengan cepat, mendukung layer, dan berfungsi dengan semua runtime.
- Image Kontainer (hingga 10 GB): disimpan di Amazon ECR, menggunakan perkakas Docker standar, tidak mendukung layer, dan ideal untuk dependensi yang sangat besar (model ML, biner berukuran besar).
Image kontainer harus mengimplementasikan Lambda Runtime Interface (menggunakan image dasar yang disediakan AWS) agar Lambda mengetahui cara memanggil penangan Anda.
# Dockerfile for a Lambda container image
FROM public.ecr.aws/lambda/python:3.12
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY app.py .
CMD ['app.lambda_handler']Alur Kerja Image Kontainer
Membangun dan men-deploy image kontainer Lambda mengikuti alur kerja kontainer standar: bangun dengan docker build, kirim ke Amazon ECR, lalu rujuk URI image saat membuat atau memperbarui fungsi Lambda. Image kontainer bersifat tidak dapat diubah—setiap label image sesuai dengan versi fungsi tertentu. Lambda menyimpan image kontainer dalam tembolok infrastrukturnya, sehingga cold start berikutnya setelah cold start pertama berlangsung lebih cepat.
# Build and push to ECR
docker build -t my-lambda-function .
aws ecr get-login-password | docker login --username AWS \
--password-stdin 123456789012.dkr.ecr.us-east-1.amazonaws.com
docker tag my-lambda-function \
123456789012.dkr.ecr.us-east-1.amazonaws.com/my-repo:latest
docker push 123456789012.dkr.ecr.us-east-1.amazonaws.com/my-repo:latestVersi dan Alias
Versi Lambda adalah snapshot kode fungsi dan konfigurasi Anda yang tidak dapat diubah. Setiap kali Anda menerbitkan versi, Lambda membekukan paket deployment, variabel lingkungan, dan layer. Alias adalah penunjuk bernama ke versi tertentu—prod mungkin menunjuk ke versi 5, sedangkan staging ke versi 6. Anda juga dapat menggunakan alias berbobot untuk mengarahkan persentase lalu lintas tertentu ke versi baru dalam deployment canary (misalnya, 10% ke v6 dan 90% ke v5).
# Publish a version and create/update an alias
aws lambda publish-version --function-name 'DataProcessor'
# Returns version number, e.g., "Version": "7"
aws lambda update-alias \
--function-name 'DataProcessor' \
--name 'prod' \
--function-version '7' \
--routing-config 'AdditionalVersionWeights={"6": 0.1}'Pemberian Versi dan Penghentian Layer
Layer juga memiliki versi. Saat Anda menerbitkan versi layer baru, fungsi yang sudah ada akan terus menggunakan versi yang ditetapkan untuknya sampai Anda memperbaruinya. Dengan demikian, Anda dapat memperbarui layer bersama dengan aman tanpa mengganggu semua fungsi secara bersamaan—luncurkan versi baru secara bertahap. Pada akhirnya, hentikan penggunaan versi layer lama untuk mengurangi beban penyimpanan dan pemeliharaan. Lambda tetap menyimpan versi layer meskipun Anda menghapusnya dari konsol, sampai tidak ada fungsi yang merujuknya.
Memilih antara Layer dan Image Kontainer
Gunakan Layer jika ukuran total setelah diekstrak berada di bawah 250 MB, Anda ingin berbagi dependensi di antara beberapa fungsi, dan Anda menginginkan iterasi yang cepat (perbarui layer sekali, semua fungsi mendapatkan manfaatnya). Gunakan Image Kontainer jika dependensi melebihi 250 MB, Anda perlu menggunakan paket OS dasar khusus, Anda sudah memiliki alur kerja Docker, atau Anda ingin menyertakan aset berukuran besar (model ML, basis data referensi). Image kontainer tidak kompatibel dengan Lambda Layer, tetapi menawarkan fleksibilitas yang lebih besar.
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 Layer mengemas dependensi bersama secara terpisah dari kode fungsi, sehingga mengurangi ukuran paket dan memungkinkan penggunaan ulang di beberapa fungsi; Image Kontainer (hingga 10 GB melalui ECR) merupakan pilihan yang tepat saat dependensi melebihi batas ZIP 250 MB atau saat alur kerja Docker sudah digunakan; serta Pemberian Versi dan Alias memungkinkan rilis yang tidak dapat diubah dan deployment canary dengan pembagian lalu lintas berbobot. Selanjutnya, kita akan membahas Lambda@Edge dan pola berbasis peristiwa.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Lapisan Lambda dan Paket Penerapan” gratis?
Ya — teks lengkap “Lapisan Lambda dan Paket Penerapan” 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 “Lapisan Lambda dan Paket Penerapan”?
Gabungkan dependensi bersama ke dalam Lapisan Lambda yang dapat digunakan kembali dan kelola paket penerapan untuk waktu proses berukuran besar. 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 3 dari 4.
Berapa lama pelajaran “Lapisan Lambda dan Paket Penerapan” 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
- Fungsi Lambda: Waktu Proses, Pemicu, dan Penangan
- Konkruensi, Pembatasan, dan Konkruensi Terreservasi
- Lapisan Lambda dan Paket Penerapan
- Lambda@Edge dan Pola Berbasis Peristiwa