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à.
AWS Lambda Concetti fondamentali di MicroVMS
AWS Lambda MicroVMS utilizza diversi tipi di risorse che puoi creare e gestire. Questa pagina descrive ogni tipo di risorsa, come Lambda costruisce l'immagine MicroVM in un'istantanea e gli stati del ciclo di vita che una microVM passa in fase di esecuzione, la base per la creazione di applicazioni con MicroVMS.
Concetti chiave
- MicroVM
-
Una microVM è una risorsa che rappresenta un ambiente di elaborazione isolato per un singolo tenant, sessione utente o processo. Ogni MicroVM esegue un sistema operativo Amazon Linux 2023 con funzionalità di sistema operativo, garantendo avvio e ripristino quasi istantanei. Le MicroVM ricevono richieste tramite connessioni HTTPS in entrata e possono essere sospese quando sono inattive, preservando la memoria e lo stato del disco. Una MicroVM sospesa riprende quando il traffico ritorna.
- Immagine MicroVM
-
Un'immagine MicroVM è una risorsa che definisce l'ambiente applicativo di una MicroVM. Quando si crea un'immagine, Lambda la crea in un'istantanea che consente un avvio quasi istantaneo (vedi sotto). Come Lambda costruisce la tua immagine
Per creare un'immagine MicroVM, fornisci un pacchetto zip contenente gli artefatti dell'applicazione, caricati su
DockerfileAmazon S3. È necessario utilizzare un'immagine di base Lambda-published gestita come base: specificala con il parametro.base-image-arnIl tuoDockerfiledefinisce i livelli applicativi che Lambda crea sulla base gestita.Le immagini MicroVM hanno una versione. Ogni versione rappresenta una singola build prodotta da un artefatto di codice e un'immagine di base specifici. Una versione procede attraverso gli stati di compilazione (
PENDING→IN_PROGRESS→SUCCESSFULoFAILED) e le versioni riuscite possono essere impostate su o.ACTIVEINACTIVEPer informazioni dettagliate sullo stato e sulla gestione delle immagini, vedereImmagini MicroVM. - Connettori di rete
-
I connettori di rete sono risorse che controllano il modo in cui il traffico raggiunge la microVM e il modo in cui la microVM raggiunge i servizi esterni. È possibile associare i connettori a una MicroVM in fase di esecuzione per configurare l'accesso in entrata e in uscita in modo indipendente.
Build-time e i connettori in fase di esecuzione possono differire, consentendo alla microVM di raggiungere ambienti diversi durante la creazione dell'immagine rispetto al runtime.
Usa le Lambda-provided impostazioni predefinite per l'accesso alla porta in entrata (con autenticazione JWE), l'accesso alla shell e l'uscita pubblica da Internet. Crea il tuo connettore di rete per indirizzare il traffico in uscita attraverso il tuo VPC.
Come Lambda costruisce la tua immagine
Quando crei o aggiorni un'immagine MicroVM, Lambda esegue un processo di compilazione che produce un'istantanea Firecracker. Questa istantanea cattura lo stato completamente inizializzato dell'applicazione, consentendo l'avvio e il ripristino quasi istantanei delle MicroVM che vengono eseguite da essa.
Il processo di compilazione:
-
Lambda esegue il provisioning di una nuova MicroVM utilizzando l'immagine di base gestita specificata.
-
Lambda esegue
Dockerfilele istruzioni per installare le dipendenze e configurare l'ambiente. -
Lambda avvia l'applicazione utilizzando il comando or.
ENTRYPOINTCMD -
Se hai abilitato l'
/readyhook, Lambda attende che l'applicazione segnali di disponibilità (HTTP 200). -
Lambda acquisisce un'istantanea dello stato del disco e della memoria, inclusi tutti i processi in esecuzione.
Quando si esegue una microVM, Lambda la ripristina da questa istantanea. L'applicazione riprende dallo stato preinizializzato senza ripetere l'avvio.
Se l'applicazione genera contenuti univoci durante la compilazione (ad esempio ID univoci, segreti o connessioni di rete), tali contenuti vengono condivisi tra tutte le MicroVM eseguite dalla stessa versione dell'immagine. Per evitare ciò, genera contenuti univoci dopo che la MicroVM inizia a utilizzare il lifecycle hook. /run Per i dettagli, consulta la sezione sulla compatibilità delle istantanee in. Immagini MicroVM
Ciclo di vita di MicroVM
In fase di esecuzione, una microVM passa attraverso le seguenti fasi:
-
Esegui: chiami.
run-microvmLambda ripristina la microVM dall'istantanea dell'immagine, assegna un ID univoco e crea un endpoint. La microVM passaPENDINGdaRUNNINGa. -
In esecuzione: l'applicazione riceve ed elabora le richieste tramite l'URL dell'endpoint.
-
Sospensione: dopo un periodo di inattività configurabile (o tramite l'
suspend-microvmAPI), la microVM passa a.SUSPENDINGSUSPENDEDLa memoria e lo stato del disco vengono preservati. -
Riprendi: la microVM passa
SUSPENDEDdirettamente aRUNNINGquando arriva il traffico (seautoResumeEnabled=true) o chiami.resume-microvm -
Termina: la microVM passa a
TERMINATEDquando si chiamaterminate-microvmo viene superataTERMINATINGla durata massima.
Stati
La tabella seguente descrive ogni stato di MicroVM. Questi stati consentono di creare applicazioni affidabili e implementare una corretta gestione degli errori.
| Stato | Description |
|---|---|
PENDING |
È in corso il provisioning di MicroVM. Le risorse vengono allocate e l'istantanea è in fase di caricamento. |
RUNNING |
MicroVM è attiva e accetta il traffico tramite l'URL dell'endpoint. L'/runhook è stato completato. |
SUSPENDING |
MicroVM è in fase di sospensione. L'/suspendhook è in esecuzione. Il disco e la memoria vengono controllati. |
SUSPENDED |
MicroVM è sospeso. Lo stato è preservato. Non vengono addebitati costi di elaborazione. Può essere ripreso o interrotto. |
TERMINATING |
MicroVM è in fase di chiusura. L'/terminatehook è in esecuzione. Le risorse vengono rilasciate. |
TERMINATED |
MicroVM è stato terminato. Si tratta di uno stato terminale. La MicroVM non può essere ripresa o riavviata. |
Transizioni di stato
La tabella seguente mostra le transizioni valide tra gli stati di MicroVM e ciò che attiva ciascuna transizione.
| Initial state (Stato iniziale) | Stato di destinazione | Trigger |
|---|---|---|
PENDING |
RUNNING |
Fornitura completata, /run hook riuscito. |
RUNNING |
SUSPENDING |
Durata di inattività superata o chiamata API esplicita. suspend-microvm |
SUSPENDING |
SUSPENDED |
/suspendhook completato, memoria e stato del disco controllati. |
SUSPENDED |
RUNNING |
Traffico in arrivo (autoResumeEnabled=true) o chiamata resume-microvm API esplicita. |
RUNNING |
TERMINATING |
Chiamata terminate-microvm API esplicita o maximumDurationInSeconds superata. |
SUSPENDED |
TERMINATING |
suspendedDurationSecondschiamata API superata o esplicitaterminate-microvm. |
TERMINATING |
TERMINATED |
/terminatehook completato, tutte le risorse rilasciate. |
Importante
Se l'/runhook fallisce o scade, la microVM può passare direttamente a TERMINATING senza mai raggiungerla. RUNNING Implementa il timeout e la gestione degli errori negli hook per evitare guasti silenziosi.