Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzo degli snapshot
Quando AWS Lambda MicroVMS crea un'immagine MicroVM, acquisisce un'istantanea Firecracker dell'applicazione completamente inizializzata. Questa pagina descrive cosa contiene un'istantanea, come gestire l'unicità tra le microVM che condividono la stessa istantanea e le migliori pratiche per le applicazioni compatibili con le istantanee.
Cosa cattura un'istantanea
Un'istantanea di Firecracker acquisisce il seguente stato dalla microVM nel momento in cui la creazione dell'immagine viene completata:
-
Stato di memoria dei processi in esecuzione: tutti i processi avviati da
ENTRYPOINT/CMD, inclusi i demoni in background, i cron job e i processi secondari. -
Stato del disco: il filesystem root che include tutti i file scritti durante la fase di compilazione (pacchetti installati, file binari compilati, file di configurazione).
-
Connessioni di rete e descrittori di file: qualsiasi connessione di rete inizializzata, handle di file, pipe e altri descrittori.
Quando esegui una MicroVM, Lambda la ripristina da questa istantanea. L'applicazione riprende esattamente dal punto in cui la versione dell'immagine MicroVM build era stata interrotta.
Considerazioni sulla compatibilità
Poiché tutte le microVM avviate dalla stessa versione dell'immagine condividono lo stesso stato iniziale, quando create applicazioni con Lambda MicroVMS, tenete presente quanto segue:
-
Unicità: se il codice genera contenuti unici durante la fase di creazione della versione dell'immagine (ID univoci, segreti o entropia per la pseudocasualità), tale contenuto viene condiviso tra tutte le microVM eseguite dalla stessa versione dell'immagine. Genera contenuti unici dopo l'avvio di una nuova microVM, non durante la creazione dell'immagine. Usa il
/runlifecycle hook per reimpostare i contenuti unici generati in precedenza. -
Connessioni di rete: potrebbe essere necessario ristabilire le connessioni stabilite durante la fase di creazione della versione dell'immagine quando si esegue una microVM dalla versione dell'immagine. Convalida lo stato della connessione e ristabilisci le connessioni se necessario. Nella maggior parte dei casi, le connessioni create dagli AWS SDK vengono ripristinate automaticamente.
Gestire l'unicità con le istantanee
Tutte le microVM eseguite dalla stessa immagine condividono lo stesso stato iniziale. Per mantenere l'unicità tra le microVMS:
-
Genera ID univoci, segreti e valori casuali dopo l'avvio di una microVM e non durante la creazione della versione dell'immagine. Usa il
/runlifecycle hook per ripristinare qualsiasi stato univoco. -
Usa generatori di numeri pseudocasuali (CSPRNG) crittograficamente sicuri per il tuo linguaggio di programmazione. Verifica che la tua libreria crittografica standard del linguaggio riceva la sua entropia dal dispositivo o dal dispositivo.
/dev/random/dev/urandomQuesto è il comportamento predefinito per le librerie crittografiche per i linguaggi di programmazione più diffusi come Java 11+ (SecureRandom libreria), Node.js (libreria Crypto.randomBytes), Python Secrets.SystemRandom 3.12+ (libreria) e Dotnet8+ (libreria). Cryptography.RandomNumberGenerator Software che legge o mantiene la casualità quando viene utilizzato con istantanee di immagini MicroVM./dev/random/dev/urandom -
Se il codice dell'applicazione utilizza OpenSSL, utilizza l'immagine AWS del contenitore di base fornita
public.ecr.aws/lambda/microvms:al2023-minimalda per creare l'immagine MicroVM. Questa immagine contiene una versione AWS con patch di OpenSSL compatibile con lo snapshotting. Se desideri utilizzare la tua immagine di base con OpenSSL, usa la versione con patch di OpenSSL (openssl-snapsafe-libs) elencata nell'elenco dei pacchetti Amazon Linux 2023.