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 create e gestite dall'utente. Questa pagina descrive ogni tipo di risorsa, come Lambda crea l'immagine microVM in un'istantanea e il ciclo di vita degli stati che una microVM attraversa 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 calcolo isolato per un singolo tenant, sessione utente o job. Ogni MicroVM esegue un sistema operativo Amazon Linux 2023 con funzionalità di sistema operativo, che forniscono 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 viene ripristinata quando il traffico ritorna.
- Immagine MicroVM
-
Un'immagine MicroVM è una risorsa che definisce l'ambiente applicativo di una MicroVM. Quando crei un'immagine, Lambda la crea in un'istantanea che consente un avvio quasi istantaneo (vedi sotto). Come Lambda crea la tua immagine
Per creare un'immagine MicroVM, fornisci un pacchetto zip contenente gli elementi dell'applicazione
Dockerfilee caricati su Amazon S3. È necessario utilizzare un'immagine di base Lambda-published gestita come base: specificarla con il parametro.base-image-arnYourDockerfiledefinisce i livelli applicativi che Lambda crea sulla base gestita.Le immagini MicroVM hanno una versione. Ogni versione rappresenta una singola build prodotta da uno specifico elemento di codice e un'immagine di base. Una versione avanza attraverso gli stati di compilazione (
PENDING→IN_PROGRESS→SUCCESSFULorFAILED) e le versioni riuscite possono essere impostate su o.ACTIVEINACTIVEPer dettagli sugli stati 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 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 di run-time possono differire, consentendo alla microVM di raggiungere ambienti diversi durante la creazione dell'immagine rispetto al runtime.
Utilizza le Lambda-provided impostazioni predefinite per l'accesso alle porte in entrata (con autenticazione JWE), l'accesso alla shell e l'uscita pubblica da Internet. Crea il tuo connettore di rete per instradare il traffico in uscita attraverso il tuo VPC.
Come Lambda crea la tua immagine
Quando crei o aggiorni un'immagine MicroVM, Lambda esegue un processo di compilazione che produce un'istantanea di Firecracker. Questa istantanea cattura lo stato completamente inizializzato dell'applicazione, abilitando l'avvio e il ripristino quasi istantanei per le microVM che vengono eseguite da essa.
Il processo di compilazione:
-
Lambda effettua 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
ENTRYPOINTorCMD. -
Se hai abilitato l'
/readyhook, Lambda attende che l'applicazione segnali la disponibilità (HTTP 200). -
Lambda acquisisce un'istantanea dello stato del disco e della memoria, inclusi tutti i processi in esecuzione.
Quando esegui una MicroVM, Lambda la ripristina da questa istantanea. L'applicazione riprende dallo stato preinizializzato senza ripetere l'avvio.
Se l'applicazione genera contenuti unici durante la compilazione (come 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 unici dopo che MicroVM inizia a utilizzare il lifecycle hook. /run Per i dettagli, consulta la sezione sulla compatibilità delle istantanee in. Immagini MicroVM
Ciclo di vita 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.
-
Sospendi: 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 da quando arriva il traffico (seautoResumeEnabled=true) oRUNNINGquando si effettua una chiamata.resume-microvm -
Termina: la microVM passa al momento in
TERMINATEDcui si effettua la chiamata o viene superataTERMINATINGla durata massima.terminate-microvm
Stati
La tabella seguente descrive ogni stato 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 viene caricata. |
RUNNING |
MicroVM è attiva e accetta traffico tramite l'URL dell'endpoint. L'/runhook è stato completato. |
SUSPENDING |
MicroVM è sospeso. L'/suspendhook è in esecuzione. Il disco e la memoria vengono sottoposti a checkpoint. |
SUSPENDED |
MicroVM è sospeso. Lo stato è preservato. Non vengono addebitati costi di elaborazione. Può essere ripreso o terminato. |
TERMINATING |
MicroVM viene terminato. L'/terminatehook è in esecuzione. Le risorse vengono rilasciate. |
TERMINATED |
MicroVM è stata terminata. 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 MicroVM e ciò che attiva ciascuna transizione.
| Initial state (Stato iniziale) | Stato di destinazione | Trigger |
|---|---|---|
PENDING |
RUNNING |
Provisioning completato, /run hook riuscito. |
RUNNING |
SUSPENDING |
Durata di inattività superata o chiamata API esplicita. suspend-microvm |
SUSPENDING |
SUSPENDED |
/suspendhook completato, controllo dello stato della memoria e del disco. |
SUSPENDED |
RUNNING |
Arriva traffico (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 |
/terminategancio completato, tutte le risorse rilasciate. |
Importante
Se l'/runhook fallisce o scade, la microVM può passare direttamente alla versione precedente TERMINATING senza mai raggiungerla. RUNNING Implementa il timeout e la gestione degli errori negli hook per evitare errori silenziosi.