Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Meningkatkan kinerja startup dengan Lambda SnapStart
Lambda SnapStart untuk Java dapat meningkatkan kinerja startup untuk aplikasi yang sensitif terhadap latensi hingga 10x tanpa biaya tambahan, biasanya tanpa perubahan pada kode fungsi Anda. Kontributor terbesar untuk latensi startup (sering disebut sebagai cold start time) adalah waktu yang dihabiskan Lambda untuk menginisialisasi fungsi, yang mencakup memuat kode fungsi, memulai runtime, dan menginisialisasi kode fungsi.
Dengan SnapStart, Lambda menginisialisasi fungsi Anda saat Anda mempublikasikan versi fungsi. Lambda mengambil snapshot MicroVM Firecracker
penting
Jika aplikasi Anda bergantung pada keunikan status, Anda harus mengevaluasi kode fungsi Anda dan memverifikasi bahwa itu tahan terhadap operasi snapshot. Untuk informasi selengkapnya, lihat Menangani keunikan dengan Lambda SnapStart.
Topik
- Fitur yang didukung dan batasan
- Wilayah yang Didukung
- Pertimbangan kompatibilitas
- SnapStart harga
- Membandingkan Lambda SnapStart dan konkurensi yang disediakan
- Sumber daya tambahan
- Mengaktifkan dan mengelola Lambda SnapStart
- Menangani keunikan dengan Lambda SnapStart
- Menerapkan kode sebelum atau sesudah snapshot fungsi Lambda
- Pemantauan untuk Lambda SnapStart
- Model keamanan untuk Lambda SnapStart
- Maksimalkan kinerja Lambda SnapStart
Fitur yang didukung dan batasan
SnapStart mendukung runtime terkelola Java 11 dan Java yang lebih baru. Runtime terkelola lainnya (seperti nodejs20.x
danpython3.12
),Runtime khusus OS, dan gambar kontainer tidak didukung.
SnapStart tidak mendukung konkurensi yang disediakan, arsitektur arm64, Amazon Elastic File System (Amazon EFS), atau penyimpanan sementara yang lebih besar dari 512 MB.
Untuk bekerja dengan SnapStart, Anda dapat menggunakan konsol Lambda, AWS Command Line Interface (AWS CLI), API Lambda,,, AWS Serverless Application Model (AWS SAM) AWS SDK for Java AWS CloudFormation, dan. AWS Cloud Development Kit (AWS CDK) Untuk informasi selengkapnya, lihat Mengaktifkan dan mengelola Lambda SnapStart.
catatan
Anda SnapStart hanya dapat menggunakan pada versi fungsi yang diterbitkan dan alias yang mengarah ke versi. Anda tidak dapat menggunakan SnapStart pada versi fungsi yang tidak dipublikasikan ($LATEST).
Wilayah yang Didukung
SnapStart tersedia sebagai berikut Wilayah AWS:
AS Timur (N. Virginia)
AS Timur (Ohio)
AS Barat (California Utara)
AS Barat (Oregon)
Afrika (Cape Town)
Asia Pasifik (Hong Kong)
Asia Pasifik (Mumbai)
Asia Pasifik (Hyderabad)
Asia Pasifik (Tokyo)
Asia Pasifik (Seoul)
Asia Pasifik (Osaka)
Asia Pasifik (Singapura)
Asia Pasifik (Sydney)
Asia Pasifik (Jakarta)
Asia Pasifik (Melbourne)
Kanada (Pusat)
Eropa (Stockholm)
Eropa (Frankfurt)
Eropa (Zürich)
Eropa (Irlandia)
Eropa (London)
Eropa (Paris)
Eropa (Milan)
Eropa (Spanyol)
Timur Tengah (UEA)
Timur Tengah (Bahrain)
Amerika Selatan (Sao Paulo)
Pertimbangan kompatibilitas
Dengan SnapStart, Lambda menggunakan satu snapshot sebagai status awal untuk beberapa lingkungan eksekusi. Jika fungsi Anda menggunakan salah satu dari berikut ini selama fase inisialisasi, maka Anda mungkin perlu membuat beberapa perubahan sebelum menggunakan SnapStart:
- Keunikan
-
Jika kode inisialisasi Anda menghasilkan konten unik yang disertakan dalam snapshot, maka konten tersebut mungkin tidak unik saat digunakan kembali di seluruh lingkungan eksekusi. Untuk mempertahankan keunikan saat menggunakan SnapStart, Anda harus menghasilkan konten unik setelah inisialisasi. Ini termasuk ID unik, rahasia unik, dan entropi yang digunakan untuk menghasilkan pseudorandomness. Untuk mempelajari cara mengembalikan keunikan, lihat. Menangani keunikan dengan Lambda SnapStart
- Koneksi jaringan
-
Status koneksi yang ditetapkan fungsi Anda selama fase inisialisasi tidak dijamin saat Lambda melanjutkan fungsi Anda dari snapshot. Validasi status koneksi jaringan Anda dan buat kembali seperlunya. Dalam kebanyakan kasus, koneksi jaringan yang dibuat AWS SDK secara otomatis dilanjutkan. Untuk koneksi lain, tinjau praktik terbaik.
- Data sementara
-
Beberapa fungsi mengunduh atau menginisialisasi data sementara, seperti kredensyal sementara atau stempel waktu yang di-cache, selama fase inisialisasi. Segarkan data singkat di penangan fungsi sebelum menggunakannya, bahkan saat tidak menggunakan. SnapStart
SnapStart harga
Tidak ada biaya tambahan untuk SnapStart. Anda dikenakan biaya berdasarkan jumlah permintaan untuk fungsi Anda, waktu yang dibutuhkan kode Anda untuk menjalankan, dan memori yang dikonfigurasi untuk fungsi Anda. Durasi dihitung dari waktu kode Anda mulai berjalan hingga kembali atau berakhir, dibulatkan ke 1 ms terdekat.
Biaya durasi berlaku untuk kode yang berjalan di penangan fungsi, kode inisialisasi yang dideklarasikan di luar handler, waktu yang diperlukan untuk memuat runtime (JVM), dan kode apa pun yang berjalan di hook runtime. Untuk informasi selengkapnya tentang cara Lambda menghitung durasi, lihat. Pemantauan untuk Lambda SnapStart
Untuk fungsi yang dikonfigurasi SnapStart, Lambda mendaur ulang lingkungan eksekusi secara berkala dan menjalankan kembali kode inisialisasi Anda. Untuk ketahanan, Lambda membuat snapshot di beberapa Availability Zone. Biaya berlaku setiap kali Lambda menjalankan kembali kode inisialisasi Anda di Availability Zone lain. Untuk informasi selengkapnya tentang cara Lambda menghitung biaya, lihat Harga.AWS Lambda
Membandingkan Lambda SnapStart dan konkurensi yang disediakan
Baik Lambda SnapStart dan konkurensi yang disediakan dapat mengurangi start dingin dan latensi outlier saat suatu fungsi meningkat. SnapStart membantu Anda meningkatkan kinerja startup hingga 10x tanpa biaya tambahan. Konkurensi yang disediakan membuat fungsi diinisialisasi dan siap merespons dalam milidetik dua digit. Mengkonfigurasi konkurensi yang disediakan menimbulkan biaya ke Anda. Akun AWS Gunakan konkurensi yang disediakan jika aplikasi Anda memiliki persyaratan latensi start dingin yang ketat. Anda tidak dapat menggunakan keduanya SnapStart dan konkurensi yang disediakan pada versi fungsi yang sama.
catatan
SnapStart bekerja paling baik saat digunakan dengan pemanggilan fungsi dalam skala besar. Fungsi yang jarang dipanggil mungkin tidak mengalami peningkatan kinerja yang sama.
Sumber daya tambahan
Selain membaca topik lain di bagian ini, kami juga menyarankan Anda mencoba Memulai lebih cepat dengan AWS Lambda SnapStart