Lapisan Lambda dan Pakej Penggunaan
Himpunkan kebergantungan dikongsi ke dalam Lapisan Lambda yang boleh diguna semula dan urus pakej penggunaan untuk masa jalan yang besar.
Lapisan Lambda dan Pakej Penggunaan ialah pelajaran Cloud & IT Cert Prep percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Cloud & IT Cert Prep, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Cloud & IT Cert Prep merangkumi sejumlah 4 pelajaran.
Masalah Kebergantungan dalam Lambda
Pakej penggunaan Lambda mesti lengkap dengan sendiri—semua kebergantungan (pustaka, SDK, perduaan) mesti disertakan dalam ZIP. Saiz pakej boleh meningkat dengan cepat: fungsi sains data Python dengan NumPy, Pandas dan SciPy boleh melebihi 200 MB selepas dinyahmampat. Setiap kemas kini pada kod fungsi memerlukan anda memuat naik semula keseluruhan himpunan, termasuk pustaka yang tidak berubah. Lapisan Lambda menyelesaikan masalah ini dengan memisahkan kebergantungan yang dikongsi daripada kod fungsi anda.
Apakah Itu Lapisan Lambda?
Lapisan Lambda ialah arkib ZIP yang mengandungi pustaka, masa jalan tersuai, data atau fail konfigurasi. Lapisan disimpan berasingan daripada kod fungsi anda dan dipasang ke dalam persekitaran pelaksanaan fungsi di /opt. Beberapa fungsi boleh berkongsi lapisan yang sama—kemas kini lapisan sekali dan setiap fungsi yang menggunakannya akan mendapat manfaat. Setiap fungsi Lambda boleh mempunyai sehingga 5 lapisan, dan saiz gabungan selepas dinyahmampat mestilah kurang daripada 250 MB.
Mencipta dan Menerbitkan Lapisan
Untuk mencipta lapisan, bungkus kebergantungan anda dalam struktur direktori yang betul untuk masa jalan anda (contohnya, python/lib/python3.12/site-packages/ untuk Python), mampatkannya sebagai ZIP dan terbitkannya. Selepas diterbitkan, lapisan tersebut akan mendapat ARN versi. Rujuk ARN ini apabila melampirkan lapisan pada fungsi. Versi baharu dicipta setiap kali anda mengemas kini lapisan; fungsi terus menggunakan versi yang telah dikonfigurasikan untuknya sehingga anda mengemas kini fungsi tersebut 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.11Melampirkan Lapisan pada Fungsi
Tambahkan lapisan pada fungsi menggunakan parameter --layers semasa mencipta atau mengemas kini fungsi. Lambda memasang semua lapisan yang dilampirkan ke dalam /opt sebelum fungsi bermula. Pakej Python di bawah /opt/python secara automatik tersedia dalam laluan Python; modul Node.js di bawah /opt/nodejs/node_modules ditemui secara automatik. Kod fungsi anda boleh menggunakan import atau require untuk pakej lapisan seolah-olah pakej tersebut dipasang secara setempat.
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'Lapisan Awam yang Disediakan oleh AWS
AWS menerbitkan lapisan rasmi yang boleh anda gunakan tanpa membina lapisan sendiri. Contohnya termasuk lapisan Powertools AWS Lambda (pengelogan berstruktur, penjejakan dan bendera ciri), lapisan pemacu pangkalan data serta lapisan Sambungan Parameter dan Rahsia AWS Lambda untuk menyimpan nilai SSM/Secrets Manager dalam cache secara setempat. Vendor pihak ketiga seperti Datadog dan New Relic turut menerbitkan lapisan awam untuk ejen pemantauan mereka. Semak Repositori Aplikasi Tanpa Pelayan dan konsol Lambda untuk melihat lapisan awam yang tersedia.
Sambungan Lambda melalui Lapisan
Sambungan Lambda berjalan sebagai proses berasingan bersama kod fungsi anda dalam persekitaran pelaksanaan yang sama. Sambungan ini bersambung dengan peristiwa kitar hayat Lambda (init, invoke, shutdown) untuk melaksanakan tugas seperti pengumpulan telemetri, pengimbasan keselamatan atau penyimpanan konfigurasi dalam cache. Sambungan diedarkan sebagai Lapisan Lambda. AWS menyediakan sambungan CloudWatch Lambda Insights dan sambungan AWS AppConfig; vendor pula menyediakan ejen pemantauan tersuai sebagai sambungan.
Format Pakej Pelancaran: ZIP berbanding Kontena
Lambda menyokong dua format pelancaran:
- ZIP (sehingga 50 MB selepas dimampatkan, 250 MB selepas dinyahmampat): muat naik pantas, menyokong lapisan dan berfungsi dengan semua masa jalan.
- Imej Kontena (sehingga 10 GB): disimpan dalam Amazon ECR, menggunakan perkakas Docker standard, tidak menyokong lapisan dan sesuai untuk kebergantungan yang sangat besar (model ML, binari besar).
Imej kontena mesti melaksanakan Antara Muka Masa Jalan Lambda (menggunakan imej asas yang disediakan oleh AWS) supaya Lambda mengetahui cara memanggil pengendali 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']Aliran Kerja Imej Kontena
Membina dan melancarkan imej kontena Lambda mengikut aliran kerja kontena standard: bina menggunakan docker build, tolak ke Amazon ECR dan rujuk URI imej semasa mencipta atau mengemas kini fungsi Lambda. Imej kontena bersifat tidak berubah—setiap tag imej sepadan dengan versi fungsi tertentu. Lambda menyimpan imej kontena dalam cache infrastrukturnya, jadi pelaksanaan sejuk seterusnya selepas yang pertama akan menjadi lebih pantas.
# 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:latestPemversian dan Alias
Versi Lambda ialah gambaran kod fungsi dan konfigurasi anda yang tidak berubah. Setiap kali anda menerbitkan versi, Lambda membekukan pakej pelancaran, pemboleh ubah persekitaran dan lapisan. Alias ialah penuding bernama kepada versi tertentu—prod mungkin menunjuk kepada versi 5, manakala staging menunjuk kepada versi 6. Anda juga boleh menggunakan alias berwajaran untuk menghalakan peratusan trafik kepada versi baharu bagi pelancaran kenari (contohnya, 10% kepada v6 dan 90% kepada 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}'Pemversian dan Penamatan Lapisan
Lapisan juga mempunyai versi. Apabila anda menerbitkan versi lapisan baharu, fungsi sedia ada terus menggunakan versi yang ditetapkan untuknya sehingga anda mengemas kini fungsi tersebut. Ini bermakna anda boleh mengemas kini lapisan yang dikongsi dengan selamat tanpa menjejaskan semua fungsi serentak—lancarkan versi baharu secara berperingkat. Lama-kelamaan, tamatkan versi lapisan lama untuk mengurangkan beban storan dan penyelenggaraan. Lambda mengekalkan versi lapisan walaupun anda memadamkannya daripada konsol, sehingga tiada fungsi lagi yang merujuk kepadanya.
Memilih antara Lapisan dan Imej Kontena
Gunakan Lapisan apabila jumlah saiz selepas dinyahmampat kurang daripada 250 MB, anda mahu berkongsi kebergantungan antara beberapa fungsi dan anda mahukan lelaran pantas (kemas kini lapisan sekali dan semua fungsi mendapat manfaat). Gunakan Imej Kontena apabila kebergantungan melebihi 250 MB, anda perlu menggunakan pakej OS asas tersuai, anda mempunyai aliran kerja Docker sedia ada atau anda mahu menghimpunkan aset besar (model ML, pangkalan data rujukan). Imej kontena tidak serasi dengan Lapisan Lambda tetapi menawarkan fleksibiliti yang lebih besar.
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: Lapisan Lambda membungkus kebergantungan yang dikongsi secara berasingan daripada kod fungsi, lalu mengurangkan saiz pakej dan membolehkan penggunaan semula merentas beberapa fungsi; Imej Kontena (sehingga 10 GB melalui ECR) ialah pilihan yang tepat apabila kebergantungan melebihi had ZIP 250 MB atau apabila aliran kerja Docker sudah digunakan; dan Pemversian serta Alias membolehkan keluaran tidak berubah dan pelancaran kenari dengan pembahagian trafik berwajaran. Seterusnya, kita akan meneroka Lambda@Edge dan corak dipacu peristiwa.
Pelajari Cloud & IT Cert Prep 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
- 150
- Pelajaran
- 600
Soalan Lazim
Adakah pelajaran “Lapisan Lambda dan Pakej Penggunaan” percuma?
Ya — teks penuh “Lapisan Lambda dan Pakej Penggunaan” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Cloud & IT Cert Prep, tingkat taraf kepada CoddyKit PRO. Kursus Cloud & IT Cert Prep merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Lapisan Lambda dan Pakej Penggunaan”?
Himpunkan kebergantungan dikongsi ke dalam Lapisan Lambda yang boleh diguna semula dan urus pakej penggunaan untuk masa jalan yang besar. Anda berlatih Cloud & IT Cert Prep 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 Cloud & IT Cert Prep?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Cloud & IT Cert Prep 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 3 daripada 4.
Berapa lamakah pelajaran “Lapisan Lambda dan Pakej Penggunaan” 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 Cloud & IT Cert Prep ini?
Ya. Setiap pelajaran Cloud & IT Cert Prep 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