Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gambar MicroVM
Bagian ini menjelaskan cara membuat, mengkonfigurasi, memperbarui, dan mengelola gambar microVM.
Gambar MicroVM adalah sumber daya yang mendefinisikan sistem file dan lingkungan aplikasi dari microVM. Gambar MicroVM mencakup lingkungan runtime Anda, kode aplikasi, dan program pendukung seperti proses latar belakang dan agen pengamatan. Untuk membuat gambar microVM, Anda menyediakan paket zip yang berisi artefak Dockerfile dan aplikasi Anda, yang Anda unggah ke Amazon S3.
Anda Dockerfile menentukan bagaimana aplikasi Anda dikemas. Lambda membangun image wadah aplikasi Anda dengan menjalankan Dockerfile di atas lingkungan sistem operasi yang disediakan oleh image dasar Lambda-managed MicroVM. Gambar dasar MicroVM dijelaskan di bawah ini, di bagian berjudul —Gambar dasar MicroVM.
Anda dapat memperbarui gambar dasar MicroVM Anda untuk memperbarui kode aplikasi atau konfigurasi untuk microVM Anda. Setiap pembaruan yang Anda picu membuat versi gambar MicroVM baru.
Bagaimana Lambda membangun image microVM
Saat Anda membuat gambar microVM, Lambda:
-
Mengambil artefak paket Anda dari Amazon S3.
-
Memulai microVM baru dari gambar Lambda-managed dasar.
-
Mengeksekusi instruksi di Anda
Dockerfile. -
Luncurkan aplikasi Anda menggunakan
CMDinstruksiENTRYPOINTatau. -
Menunggu inisialisasi selesai, ditandai oleh kait siklus hidup Anda.
-
Menangkap snapshot dari disk dan status memori.
Setelah proses snapshot selesai, image microVM Anda memasuki CREATED status. Anda sekarang dapat menggunakan gambar microVM ini untuk membuat microVM, dan setiap gambar microVM dapat digunakan untuk membuat beberapa microVM independen. Sebuah microVM yang dijalankan dari image microVM dilanjutkan langsung dari status snapshot, memberikan waktu startup yang cepat. Setiap gambar microVM dapat digunakan untuk menjalankan beberapa microVM, hingga batas yang tersedia untuk akun Anda.
Untuk panduan langkah demi langkah mengemas kode Anda dan membuat gambar microVM pertama Anda, lihat. Buat MicroVM pertama Anda
Ukuran MicroVM
Lambda MicroVMS menggunakan model baseline-peak yang menghilangkan kebutuhan untuk menyesuaikan ukuran setiap lingkungan komputasi untuk aktivitas puncak. Anda mengonfigurasi sumber daya komputasi dasar untuk microVM Anda. Selama aktivitas puncak, microVM Anda dapat secara otomatis menskalakan secara vertikal hingga 4x baseline. Anda membayar tarif dasar saat microVM Anda berjalan dan hanya membayar untuk apa yang Anda gunakan secara aktif di atas baseline, ditagih per detik.
Anda mengatur baseline dengan menggunakan memory parameter saat membuat image microVM Anda. vCPU berskala secara proporsional dengan memori (2 GB = 1 vCPU). Baseline default adalah 2 GB/1 vCPU.
Tabel berikut mencantumkan ukuran yang tersedia:
| Baseline | Puncak | Ruang disk maks |
|---|---|---|
| Memori 0,5 GB, 0,25 vCPU | Memori 2 GB, 1 vCPU | 8GB |
| Memori 1 GB, 0,5 vCPU | Memori 4 GB, 2 vCPU | 8GB |
| Memori 2 GB, 1 vCPU (default) | Memori 8 GB, 4 vCPU | 8GB |
| Memori 4 GB, 2 vCPU | Memori 16 GB, 8 vCPU | 16GB |
| Memori 8 GB, 4 vCPU | Memori 32 GB, 16 vCPU | 32 GB |
Gambar dasar MicroVM
Sebuah image dasar MicroVM berfungsi sebagai dasar untuk image microVM Anda. Lambda menerbitkan gambar dasar MicroVM yang menyediakan sistem operasi Amazon Linux 2023 dan komponen layanan yang diperlukan untuk menjalankan MicroVM. Saat Anda membuat atau memperbarui image microVM, Lambda memulai microVM baru dari image dasar ini dan menjalankan Dockerfile instruksi Anda dalam lingkungan sistem operasi ini.
Lambda secara berkala merilis versi baru dari image dasar MicroVM yang dikelola layanan, seperti saat menerapkan patch keamanan, untuk memperbarui sistem operasi atau komponen layanan. Secara default, versi terbaru dari image dasar yang dikelola layanan berlaku ketika Anda adalah image microVM creating/updating Anda sendiri. Untuk pemecahan masalah atau debugging, Anda dapat mengganti versi gambar berbasis layanan yang dikelola secara opsional saat membuat gambar microVM Anda sendiri menggunakan parameter. base-image-version
Versi gambar dasar mengikuti siklus hidup penghentian:
-
AVAILABLE— Saat ini, direkomendasikan untuk digunakan. -
DEPRECATED(60 hari) - Ada versi yang lebih baru. Anda masih bisa membangun dan menjalankan. -
EXPIRING(30 hari) - Tidak dapat membuat gambar baru. Gambar yang ada masih bisa berjalan. -
EXPIRED— Tidak dapat membangun atau menjalankan. Bangun kembali gambar Anda pada versi yang didukung. -
RECALLED— Segera tidak tersedia karena masalah keamanan kritis (jarang).
Agar tetap terkini, pantau pemberitahuan penghentian dan bangun kembali gambar microVM Anda saat versi gambar dasar baru dirilis.
Perhatikan bahwa image dasar MicroVM berbeda dari image basis kontainer yang Anda tentukan di Dockerfiles Anda. Sementara yang pertama mendefinisikan lingkungan sistem operasi untuk microVM Anda, yang terakhir menentukan image wadah dasar mana yang akan digunakan saat mengemas aplikasi Anda untuk digunakan dengan Lambda MicroVMS. Lihat bagian di Gambar basis kontainer untuk lebih detailnya.
Gunakan API berikut untuk menemukan image dasar MicroVM terkelola yang tersedia dan versinya:
# List all managed MicroVM base images aws lambda-microvms list-managed-microvm-images # List the versions of a specific managed MicroVM base image aws lambda-microvms list-managed-microvm-image-versions \ --image-identifier arn:aws:lambda:us-east-1:aws:microvm-image:al2023-1
Kait pembuatan gambar MicroVM
Lambda menyediakan kait pembuatan gambar microVM yang memungkinkan Anda memverifikasi kebenaran aplikasi dan mengoptimalkan kinerja selama pembuatan gambar microVM. Hooks berjalan sebelum Lambda mengambil snapshot yang digunakan untuk menginisialisasi setiap microVM. Setiap hook adalah titik akhir HTTP yang diekspos aplikasi Anda dan yang dipanggil Lambda selama pembuatan. Dengan menanggapi permintaan ini, Anda mengontrol dan memvalidasi proses pembuatan gambar microVM. Lambda menggunakan kode Status HTTP untuk menentukan apakah hook berhasil diselesaikan.
penting
Jika Anda mengonfigurasi kait apa pun, Anda harus menentukan port yang didengarkan aplikasi Anda untuk permintaan kait.
| Kait | Jalur | Rincian | Kode status HTTP | Waktu habis |
|---|---|---|---|---|
| /siap | /aws/lambda-microvms/runtime/v1/ready |
Dipanggil selama pembuatan gambar microVM, setelah aplikasi Anda dimulai melalui ENTRYPOINT atauCMD. Menandakan bahwa aplikasi Anda siap untuk diambil. |
HTTP 503: Belum siap; Lambda mencoba lagi sampai batas waktu. HTTP 200: Inisialisasi selesai; Lambda mengambil snapshot. | 1—3600 detik () readyTimeoutInSeconds |
| /memvalidasi | /aws/lambda-microvms/runtime/v1/validate |
Dipanggil setelah build selesai, pada microVM baru dimulai dari gambar yang dibuat. Mengonfirmasi aplikasi berfungsi dengan benar saat dilanjutkan. | HTTP 503: Validasi membutuhkan lebih banyak waktu untuk diselesaikan; Lambda mencoba lagi sampai batas waktu. HTTP 200: Validasi lulus. | 1—3600 detik () validateTimeoutInSeconds |
penting
Saat mengembalikan HTTP 503, kembalikan segera daripada menahan permintaan terbuka saat Anda menunggu. Jika batas waktu berlalu saat permintaan ditahan terbuka, Lambda mengakhiri build.
catatan
Anda juga dapat menggunakan hook /validate untuk mengoptimalkan waktu startup. Untuk melakukannya, jalankan muatan tiruan selama validasi. Ini memungkinkan Lambda untuk melacak wilayah yang diakses dari snapshot Anda dan mengoptimalkan pengambilannya selama startup MicroVM.
Memperbarui gambar microVM
Anda dapat memperbarui image microVM yang ada dengan memanggil update-microvm-image API. Setiap pembaruan memicu pembuatan versi gambar microVM baru. Anda biasanya memperbarui image microVM ke:
-
Menyebarkan kode aplikasi baru — Arahkan ke artefak kode baru (zip baru yang diunggah ke Amazon S3) untuk mengirimkan versi baru aplikasi Anda.
-
Pindah ke image dasar MicroVM yang lebih baru — Ubah gambar dasar MicroVM ARN untuk meningkatkan ke versi yang lebih baru dari image dasar MicroVM Lambda. Untuk informasi lebih lanjut, lihat Penambalan gambar MicroVM danGambar dasar MicroVM.
-
Ubah peran build — Perbarui peran build ARN saat izin yang dibutuhkan Lambda selama perubahan build, seperti saat artefak kode Anda pindah ke bucket Amazon S3 yang berbeda atau Anda mulai menarik dari repositori ECR pribadi.
-
Sesuaikan konfigurasi runtime — Ubah kait, variabel lingkungan, atau kemampuan untuk mengkonfigurasi ulang bagaimana image microVM Anda dibuat dan dijalankan.
-
Perbarui deskripsi - Ubah deskripsi gambar MicroVM untuk merekam apa yang berubah dalam versi ini.
Perintah CLI berikut menunjukkan bagaimana Anda dapat memperbarui gambar microVM. --build-role-arnParam --base-image-arn eter dan diperlukan pada setiap update-microvm-image panggilan yang memicu build baru, bahkan ketika Anda hanya mengubah artefak kode — menghilangkannya menghasilkan: ValidationException
aws lambda-microvms update-microvm-image \ --image-identifierarn:aws:lambda:us-east-1:123456789012:microvm-image:my-microvm-image\ --code-artifact uri=s3://my-bucket/deployments/app-v2.zip \ --base-image-arn arn:aws:lambda:us-east-1:aws:microvm-image:al2023-1 \ --build-role-arn arn:aws:iam::123456789012:role/MicrovmBuildRole \ --description "Updated with v2 application code"
Status gambar dan membangun status
Setiap kali Anda membuat atau memperbarui gambar microVM, Lambda menghasilkan versi baru yang dibangun dari artefak kode dan gambar dasar Anda. Sebuah image microVM dapat memiliki banyak versi dari waktu ke waktu, dan Anda menjalankan MicroVMS dari versi tertentu.
Tiga negara independen melacak aspek yang berbeda dari siklus hidup:
-
Status gambar — siklus hidup keseluruhan sumber daya gambar microVM (sedang dibuat, siap digunakan, diperbarui, gagal, atau dihapus).
-
Status versi — kemajuan pembuatan versi tertentu (tertunda, membangun, berhasil, atau gagal). Periksa
stateReasonatau CloudWatch log (/aws/lambda/microvms/<image-name>) untuk detail kegagalan. -
Aktivasi versi — apakah versi yang berhasil dibuat diizinkan untuk menjalankan MicroVMS. Lambda menetapkan versi baru secara
ACTIVEotomatis; Anda dapat mengatur versiINACTIVEuntuk menonaktifkannya tanpa menghapusnya.
| Status | Kemungkinan nilai | Transisi dikendalikan oleh |
|---|---|---|
| Status gambar | CREATING, CREATED,
CREATION_FAILED, UPDATING,
UPDATED, UPDATE_FAILED,
DELETING, DELETED,
DELETION_FAILED |
Lambda (otomatis) |
| Status versi | PENDING, IN_PROGRESS,
SUCCESSFUL, FAILED |
Lambda (otomatis) |
| Aktivasi versi | ACTIVE, INACTIVE |
Anda (update-microvm-image-version --state) |
Untuk menjalankan microVM dari versi, status gambar harus CREATED atauUPDATED, status versi harusSUCCESSFUL, dan versi harus ACTIVE demikian.
catatan
Negara-negara ini independen. Gambar di CREATED negara bagian dapat berisi versi yang statusnyaFAILED.
# De-activate a version aws lambda-microvms update-microvm-image-version \ --image-identifier my-image \ --image-version 1.0 \ --state INACTIVE
Variabel-variabel lingkungan
Variabel lingkungan diatur pada waktu pembuatan gambar microVM melalui environmentVariables bidang (maksimum 50 variabel). Ini disuntikkan ke dalam wadah selama proses pembuatan snapshot. Anda dapat melewati payload yang diatur secara dinamis saat menjalankan microVM baru. Lihat bagian tentang menjalankan microVM Anda untuk mempelajari lebih lanjut.
Penambalan gambar MicroVM
Ketika ada image dasar microVM baru yang tersedia, Anda dapat mengeluarkan update-microvm-image panggilan untuk memicu pembuatan gambar microVM dengan patch terbaru — baik menghilangkan base-image-version argumen (untuk terbaru) atau menentukan argumen dengan versi terbaru.
Gambar basis kontainer
Lambda MicroVMS menjalankan aplikasi Anda sebagai wadah dalam lingkungan sistem operasi MicroVM. Anda menentukan wadah itu dengan AndaDockerfile, dan FROM instruksi di Anda Dockerfile menetapkan gambar dasar wadah untuk aplikasi Anda.
Anda dapat memulai dengan gambar wadah dasar Lambda untuk Amazon Linux 2023 (public.ecr.aws/lambda/microvms:al2023-minimal) dan menambahkan Dockerfile instruksi Anda di atasnya, atau menggunakan gambar wadah dasar Anda sendiri. Saat menggunakan gambar kontainer Anda sendiri, validasi persyaratan berikut:
Persyaratan
-
Gambar basis kontainer harus kompatibel dengan arsitektur CPU target.
-
Gambar basis kontainer dari reposit AWS ori ECR pribadi memerlukan peran build yang harus dimiliki
ecr:GetAuthorizationTokendanecr:BatchGetImageizin. -
Gambar basis kontainer harus didasarkan pada sistem operasi Linux.
-
Gambar basis kontainer harus dapat diakses dari infrastruktur build Lambda (internet publik atau repositori ECR di AWS akun yang sama).
-
Gambar dasar kontainer harus kompatibel dengan snapshot, lihat instruksi di bawah ini.
Snapshot-compatible gambar dasar
Karena Lambda MicroVMS memulai setiap microVM dari snapshot pra-inisialisasi, gambar dasar harus kompatibel dengan snapshot. Sebaiknya tinjau bagian Pertimbangan kompatibilitas saat menggunakan gambar dasar Anda sendiri dengan Lambda MicroVMS.
Menggunakan gambar ECR pribadi
Referensikan gambar dasar wadah ECR pribadi Anda dalam FROM instruksi AndaDockerfile:
FROM 123456789012.dkr.ecr.us-east-1.amazonaws.com/my-base:latest WORKDIR /app COPY . . CMD ["./my-app"]
Tambahkan izin berikut ke peran build Anda:
{ "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" }
Kemampuan sistem operasi
Secara default, Lambda MicroVM berjalan dengan seperangkat kemampuan Linux standar. Anda dapat memberikan kemampuan Linux yang ditingkatkan menggunakan additionalOsCapabilities bidang saat membuat atau memperbarui gambar microVM. Satu-satunya nilai yang di-support adalah ["ALL"]. Kemampuan yang ditingkatkan memungkinkan operasi seperti memasang sistem file, membuat ruang nama jaringan, atau menjalankan program eBPF. Kemampuan diterapkan dalam batas isolasi VM dan tidak mempengaruhi host atau microVM lainnya.
aws lambda-microvms create-microvm-image \ --name my-network-tool \ --code-artifact uri=s3://my-bucket/app.zip \ --base-image-arn arn:aws:lambda:us-east-1:aws:microvm-image:al2023-1 \ --build-role-arn arn:aws:iam::123456789012:role/BuildRole \ --additional-os-capabilities '["ALL"]'