View a markdown version of this page

AWS Lambda Konsep inti MicroVMS - AWS Lambda

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

AWS Lambda Konsep inti MicroVMS

AWS Lambda MicroVMS menggunakan beberapa jenis sumber daya yang Anda buat dan kelola. Halaman ini menjelaskan setiap jenis sumber daya, bagaimana Lambda membangun image microVM Anda menjadi snapshot, dan siklus hidup menyatakan transisi microVM saat runtime — dasar untuk membangun aplikasi dengan microVM.

Konsep Utama

MicroVM

MicroVM adalah sumber daya yang mewakili lingkungan komputasi terisolasi untuk satu penyewa, sesi pengguna, atau pekerjaan. Setiap MicroVM menjalankan sistem operasi Amazon Linux 2023 dengan kemampuan sistem operasi, menyediakan peluncuran dan peluncuran hampir instan. MicroVM menerima permintaan melalui koneksi HTTPS masuk dan dapat ditangguhkan saat idle, menjaga memori dan status disk. MicroVM yang ditangguhkan dilanjutkan saat lalu lintas kembali.

Gambar MicroVM

Gambar MicroVM adalah sumber daya yang mendefinisikan lingkungan aplikasi microVM. Saat Anda membuat gambar, Lambda membuatnya menjadi snapshot yang memungkinkan peluncuran hampir instan (lihat Bagaimana Lambda membangun citra Anda di bawah).

Untuk membuat gambar microVM, Anda menyediakan paket zip yang berisi artefak Dockerfile dan aplikasi Anda, diunggah ke Amazon S3. Anda harus menggunakan gambar Lambda-published dasar terkelola sebagai fondasi - tentukan dengan base-image-arn parameter. Anda Dockerfile menentukan lapisan aplikasi yang dibangun Lambda di atas basis terkelola.

Gambar MicroVM diberi versi. Setiap versi mewakili satu build yang dihasilkan dari artefak kode tertentu dan gambar dasar. Versi berkembang melalui status build (PENDINGIN_PROGRESSSUCCESSFUL atauFAILED), dan versi yang berhasil dapat disetel ke ACTIVE atauINACTIVE. Untuk detail tentang status gambar dan manajemen, lihatImage MicroVM.

Konektor jaringan

Konektor jaringan adalah sumber daya yang mengontrol bagaimana lalu lintas mencapai microVM Anda dan bagaimana microVM Anda mencapai layanan eksternal. Anda mengaitkan konektor dengan microVM pada waktu berjalan untuk mengonfigurasi akses masuk dan keluar secara independen.

Build-time dan konektor run-time dapat berbeda, memungkinkan microVM Anda menjangkau lingkungan yang berbeda selama pembuatan gambar versus runtime.

Gunakan Lambda-provided default untuk akses port masuk (dengan otentikasi JWE), akses shell, dan keluar internet publik. Buat konektor jaringan Anda sendiri untuk merutekan lalu lintas keluar melalui VPC Anda.

Bagaimana Lambda membangun citra Anda

Saat Anda membuat atau memperbarui gambar microVM, Lambda melakukan proses pembuatan yang menghasilkan snapshot Firecracker. Snapshot ini menangkap status aplikasi Anda yang diinisialisasi sepenuhnya, memungkinkan peluncuran dan dilanjutkan hampir instan untuk microVM yang berjalan darinya.

Proses pembangunan:

  1. Lambda menyediakan microVM baru menggunakan image dasar terkelola yang Anda tentukan.

  2. Lambda mengeksekusi Dockerfile instruksi Anda untuk menginstal dependensi dan mengkonfigurasi lingkungan Anda.

  3. Lambda memulai aplikasi Anda menggunakan CMD perintah ENTRYPOINT or.

  4. Jika Anda mengaktifkan /ready hook, Lambda menunggu aplikasi Anda memberi sinyal kesiapan (HTTP 200).

  5. Lambda menangkap snapshot dari disk dan status memori, termasuk semua proses yang berjalan.

Saat Anda menjalankan microVM, Lambda mengembalikannya dari snapshot ini. Aplikasi Anda dilanjutkan dari status pra-inisialisasi tanpa mengulangi startup.

Jika aplikasi Anda menghasilkan konten unik selama pembuatan (seperti ID unik, rahasia, atau koneksi jaringan), konten tersebut dibagikan di semua MicroVM yang dijalankan dari versi gambar yang sama. Untuk menghindari hal ini, buat konten unik setelah microVM mulai menggunakan hook /run siklus hidup. Untuk detailnya, lihat bagian kompatibilitas snapshot diImage MicroVM.

Siklus hidup MicroVM

Saat runtime, transisi microVM melalui tahapan berikut:

  1. Lari - Anda meneleponrun-microvm. Lambda mengembalikan microVM dari snapshot gambar, menetapkan ID unik, dan membuat titik akhir. Transisi MicroVM dari PENDING keRUNNING.

  2. Menjalankan — Aplikasi Anda menerima dan memproses permintaan melalui URL titik puncaknya.

  3. Men angguhkan - Setelah periode idle yang dapat dikonfigurasi (atau melalui suspend-microvm API), microVM beralih ke. SUSPENDING SUSPENDED Memori dan status disk dipertahankan.

  4. Lanjutkan — Transisi microVM dari SUSPENDED langsung kembali ke RUNNING saat lalu lintas tiba (jikaautoResumeEnabled=true) atau Anda menelep resume-microvm on.

  5. H entikan — Transisi microVM TERMINATING hingga TERMINATED saat Anda menelepon terminate-microvm atau durasi maksimum terlampaui.

Status

Tabel berikut menjelaskan setiap status microVM. Status ini memungkinkan Anda untuk membangun aplikasi yang andal dan menerapkan penanganan kesalahan yang tepat.

Status Deskripsi
PENDING MicroVM sedang disediakan. Sumber daya dialokasikan dan snapshot sedang dimuat.
RUNNING MicroVM aktif dan menerima lalu lintas melalui URL titik puncaknya. Peng /run ait telah selesai.
SUSPENDING MicroVM sedang ditangguhkan. Peng /suspend ait sedang dieksekusi. Disk dan memori sedang diperiksa.
SUSPENDED MicroVM ditangguhkan. Negara dipertahankan. Tidak ada biaya komputasi yang bertambah. Dapat dilanjutkan atau dihentikan.
TERMINATING MicroVM sedang dihentikan. Peng /terminate ait sedang dieksekusi. Sumber daya sedang dilepaskan.
TERMINATED MicroVM telah dihentikan. Ini adalah status terakhir. MicroVM tidak dapat dilanjutkan atau dimulai ulang.

Transisi negara

Tabel berikut menunjukkan transisi yang valid antara status microVM dan apa yang memicu setiap transisi.

Keadaan awal Status target Pemicu
PENDING RUNNING Penyediaan selesai, /run hook berhasil.
RUNNING SUSPENDING Durasi idle terlampaui, atau panggilan suspend-microvm API eksplisit.
SUSPENDING SUSPENDED /suspendkait selesai, memori dan status disk diperiksa.
SUSPENDED RUNNING Lalu lintas tiba (autoResumeEnabled=true) atau panggilan resume-microvm API eksplisit.
RUNNING TERMINATING Panggilan terminate-microvm API eksplisit, atau ter maximumDurationInSeconds lampaui.
SUSPENDED TERMINATING suspendedDurationSecondsterlampaui, atau panggilan terminate-microvm API eksplisit.
TERMINATING TERMINATED /terminatekait selesai, semua sumber daya dilepaskan.
penting

Jika /run hook Anda gagal atau habis waktu, microVM dapat beralih langsung ke TERMINATING tanpa pernah mencapaiRUNNING. Terapkan batas waktu dan penanganan kesalahan di kait Anda untuk menghindari kegagalan diam.