View a markdown version of this page

Mengelola dependensi Fungsi Acara Lambda dengan lapisan - AWS Lambda

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

Mengelola dependensi Fungsi Acara Lambda dengan lapisan

Lapisan Lambda adalah arsip file.zip yang berisi kode atau data tambahan. Lapisan biasanya berisi dependensi pustaka, runtime kustom, atau file konfigurasi.

Ada beberapa alasan mengapa Anda mungkin mempertimbangkan untuk menggunakan lapisan:

  • Untuk mengurangi ukuran paket penyebaran Anda. Alih-alih menyertakan semua dependensi Event Function Anda bersama dengan kode Event Function Anda dalam paket deployment Anda, letakkan di layer. Ini membuat paket penerapan tetap kecil dan terorganisir.

  • Untuk memisahkan logika fungsi inti dari dependensi. Dengan layer, Anda dapat memperbarui dependensi Event Function Anda independen dari kode Event Function Anda, dan sebaliknya. Ini mempromosikan pemisahan kekhawatiran dan membantu Anda fokus pada logika Fungsi Acara Anda.

  • Untuk berbagi dependensi di beberapa fungsi. Setelah Anda membuat layer, Anda dapat menerapkannya ke sejumlah Fungsi Acara di akun Anda. Tanpa lapisan, Anda perlu menyertakan dependensi yang sama di setiap paket penerapan individu.

  • Untuk menggunakan editor kode konsol Lambda. Editor kode adalah alat yang berguna untuk menguji pembaruan kode Fungsi Acara minor dengan cepat. Namun, Anda tidak dapat menggunakan editor jika ukuran paket penerapan Anda terlalu besar. Menggunakan lapisan mengurangi ukuran paket Anda dan dapat membuka kunci penggunaan editor kode.

  • Untuk mengunci versi SDK yang disematkan. SDK yang disematkan mungkin berubah tanpa pemberitahuan saat AWS merilis layanan dan fitur baru. Anda dapat mengunci versi SDK dengan membuat layer Lambda dengan versi spesifik yang diperlukan. Fungsi Acara kemudian selalu menggunakan versi di lapisan, bahkan jika versi yang disematkan dalam layanan berubah.

Jika Anda bekerja dengan Lambda Event Functions di Go atau Rust, sebaiknya jangan menggunakan layer. Untuk Go dan Rust Event Functions, Anda memberikan kode Event Function Anda sebagai executable, yang menyertakan kode Event Function yang dikompilasi bersama dengan semua dependensinya. Menempatkan dependensi Anda di lapisan memaksa Fungsi Peristiwa Anda memuat rakitan tambahan secara manual selama fase inisialisasi, yang dapat meningkatkan waktu mulai dingin. Untuk kinerja optimal untuk Go dan Rust Event Functions, sertakan dependensi Anda bersama dengan paket penerapan Anda.

Diagram berikut menggambarkan perbedaan arsitektur tingkat tinggi antara dua Fungsi Peristiwa yang berbagi dependensi. Satu menggunakan lapisan Lambda, dan yang lainnya tidak.

Perbandingan dua Fungsi Acara yang tidak menggunakan lapisan, dan dua Fungsi Acara yang berbagi lapisan.

Saat Anda menambahkan layer ke Fungsi Peristiwa, Lambda mengekstrak konten layer ke dalam /opt direktori di lingkungan eksekusi Event Function Anda. Semua runtime Lambda yang didukung secara native menyertakan jalur ke direktori tertentu di dalam direktori. /opt Ini memberi Event Function Anda akses ke konten layer Anda. Untuk informasi selengkapnya tentang jalur spesifik ini dan cara mengemas layer Anda dengan benar, lihatKemasan konten lapisan Anda.

Anda dapat menyertakan hingga lima lapisan per Fungsi Acara. Selain itu, Anda dapat menggunakan layer hanya dengan Lambda Event Functions yang digunakan sebagai arsip file.zip. Untuk Fungsi Acara yang didefinisikan sebagai gambar kontainer, paketkan runtime pilihan Anda dan semua dependensi kode saat Anda membuat gambar kontainer. Untuk informasi selengkapnya, lihat Bekerja dengan lapisan dan ekstensi Lambda dalam gambar kontainer di Blog AWS Komputasi.

Cara menggunakan lapisan

Untuk membuat layer, paketkan dependensi Anda ke dalam file.zip, mirip dengan cara Anda membuat paket penerapan normal. Lebih khusus lagi, proses umum membuat dan menggunakan lapisan melibatkan tiga langkah ini:

Versi lapisan dan lapisan

Versi lapisan adalah snapshot yang tidak dapat diubah dari versi tertentu dari lapisan. Saat Anda membuat layer baru, Lambda membuat versi layer baru dengan nomor versi 1. Setiap kali Anda mempublikasikan pembaruan ke layer, Lambda menambah nomor versi dan membuat versi layer baru.

Setiap versi layer diidentifikasi oleh Amazon Resource Name (ARN) yang unik. Saat menambahkan layer ke Fungsi Acara, Anda harus menentukan versi layer yang tepat yang ingin Anda gunakan (misalnya,arn:aws:lambda:us-east-1:123456789012:layer:my-layer:1).