View a markdown version of this page

AWS Lambda Concetti fondamentali di MicroVMS - AWS Lambda

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 Dockerfile e caricati su Amazon S3. È necessario utilizzare un'immagine di base Lambda-published gestita come base: specificarla con il parametro. base-image-arn Your Dockerfile definisce 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 (PENDINGIN_PROGRESSSUCCESSFUL orFAILED) e le versioni riuscite possono essere impostate su o. ACTIVE INACTIVE Per 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:

  1. Lambda effettua il provisioning di una nuova MicroVM utilizzando l'immagine di base gestita specificata.

  2. Lambda esegue Dockerfile le istruzioni per installare le dipendenze e configurare l'ambiente.

  3. Lambda avvia l'applicazione utilizzando il comando ENTRYPOINT orCMD.

  4. Se hai abilitato l'/readyhook, Lambda attende che l'applicazione segnali la disponibilità (HTTP 200).

  5. 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:

  1. Esegui: chiami. run-microvm Lambda ripristina la microVM dall'istantanea dell'immagine, assegna un ID univoco e crea un endpoint. La microVM passa PENDING da RUNNING a.

  2. In esecuzione: l'applicazione riceve ed elabora le richieste tramite l'URL dell'endpoint.

  3. Sospendi: dopo un periodo di inattività configurabile (o tramite l'suspend-microvmAPI), la microVM passa a. SUSPENDING SUSPENDED La memoria e lo stato del disco vengono preservati.

  4. Riprendi: la microVM passa SUSPENDED direttamente da quando arriva il traffico (seautoResumeEnabled=true) o RUNNING quando si effettua una chiamata. resume-microvm

  5. Termina: la microVM passa al momento in TERMINATED cui si effettua la chiamata o viene superata TERMINATING la 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.