

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

# Cara menggunakan snapshot
<a name="microvms-images-snapshots"></a>

Ketika AWS Lambda microVMS membangun gambar microVM, ia menangkap snapshot Firecracker dari aplikasi Anda yang sepenuhnya diinisialisasi. Halaman ini menjelaskan isi snapshot, cara menangani keunikan di seluruh microVM yang berbagi snapshot yang sama, dan praktik terbaik untuk aplikasi yang kompatibel dengan snapshot.

## Apa yang ditangkap snapshot
<a name="microvms-snapshots-what-is-captured"></a>

Snapshot Firecracker menangkap status berikut dari microVM Anda saat pembuatan gambar selesai:
+ **Status memori dari proses yang berjalan** — Semua proses yang diluncurkan oleh`ENTRYPOINT`/`CMD`, termasuk daemon latar belakang, pekerjaan cron, dan proses anak.
+ **Status disk** — Sistem file root termasuk semua file yang ditulis selama fase build (paket terinstal, binari yang dikompilasi, file konfigurasi).
+ **Koneksi jaringan dan deskriptor file** — Setiap koneksi jaringan yang diinisialisasi, pegangan file, pipa, dan deskriptor lainnya.

Saat Anda menjalankan microVM, Lambda mengembalikannya dari snapshot ini. Aplikasi Anda melanjutkan persis di mana versi gambar microVM ditinggalkan.

## Pertimbangan kompatibilitas
<a name="microvms-images-snapshots-compatibility"></a>

Karena semua microVMS yang diluncurkan dari versi gambar yang sama memiliki status awal yang identik, pertimbangkan hal berikut saat membuat aplikasi dengan MicroVMS Lambda:
+ **Keunikan** - Jika kode Anda menghasilkan konten unik selama fase pembuatan versi gambar (ID unik, rahasia, atau entropi untuk pseudorandomness), konten tersebut dibagikan di semua microVM yang dijalankan dari versi gambar yang sama. Hasilkan konten unik setelah microVM baru dimulai, bukan selama pembuatan gambar. Gunakan kait `/run` siklus hidup untuk mengatur ulang konten unik yang dibuat sebelumnya.
+ **Koneksi jaringan** — Koneksi yang dibuat selama fase pembuatan versi gambar mungkin perlu dibuat ulang saat microVM dijalankan dari versi gambar. Validasi status koneksi dan buat kembali koneksi seperlunya. Dalam kebanyakan kasus, koneksi yang dibuat oleh AWS SDK dibuat ulang secara otomatis.

## Menangani keunikan dengan snapshot
<a name="microvms-images-snapshots-uniqueness"></a>

Semua microVMS berjalan dari gambar yang sama berbagi status awal yang identik. Untuk menjaga keunikan di seluruh microVMS:
+ Hasilkan ID unik, rahasia, dan nilai acak setelah microVM dimulai dan bukan selama pembuatan versi gambar. Gunakan kait `/run` siklus hidup untuk mengatur ulang status unik apa pun.
+ Gunakan generator nomor pseudorandom yang aman secara kriptografis (CSPRNGs) untuk bahasa pemrograman Anda. Verifikasi bahwa pustaka kriptografi standar bahasa Anda menerima entropi dari perangkat atau perangkat. `/dev/random` `/dev/urandom` Ini adalah perilaku default untuk pustaka kriptografi untuk bahasa pemrograman populer seperti Java 11\+ (SecureRandom perpustakaan), Node.js (perpustakaan Crypto.randomBytes), Python Secrets.SystemRandom 3.12\+ (perpustakaan), dan Dotnet8\+ (perpustakaan). Cryptography.RandomNumberGenerator Perangkat lunak yang membaca dari `/dev/random` atau `/dev/urandom` mempertahankan keacakan saat digunakan dengan snapshot gambar microVM.
+ Jika kode aplikasi Anda menggunakan OpenSSL, gunakan image container dasar AWS yang disediakan untuk membuat image `public.ecr.aws/lambda/microvms:al2023-minimal` microVM Anda. Gambar ini berisi versi OpenSSL AWS-patched yang kompatibel dengan snapshotting. [Jika Anda ingin menggunakan image dasar Anda sendiri dengan OpenSSL, gunakan versi patch OpenSSL (openssl-snapsafe-libs) yang tercantum dalam daftar paket Amazon Linux 2023.](https://docs.aws.amazon.com/linux/al2023/release-notes/all-packages.html)