Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
AWS Lambda Concepts fondamentaux de MicroVMS
AWS Lambda MicroVMS utilise plusieurs types de ressources que vous créez et gérez. Cette page décrit chaque type de ressource, la manière dont Lambda crée votre image microVM en instantané, et les états du cycle de vie par lesquels une microVM passe au moment de l'exécution, ce qui constitue la base de la création d'applications avec microVM.
Concepts clés
- MicroVM
-
Une microVM est une ressource qui représente un environnement informatique isolé pour un locataire, une session utilisateur ou une tâche unique. Chaque microVM exécute un système d'exploitation Amazon Linux 2023 doté de fonctionnalités permettant un lancement et une reprise quasi instantanés. Les microVM reçoivent des demandes via des connexions HTTPS entrantes et peuvent être suspendues en cas d'inactivité, afin de préserver la mémoire et l'état du disque. Une microVM suspendue reprend lorsque le trafic revient.
- Image microVM
-
Une image microVM est une ressource qui définit l'environnement applicatif d'une microVM. Lorsque vous créez une image, Lambda l'intègre dans un instantané qui permet un lancement quasi instantané (voir Comment Lambda crée votre image ci-dessous).
Pour créer une image microVM, vous devez fournir un package zip contenant a
Dockerfileet les artefacts de votre application, téléchargés sur Amazon S3. Vous devez utiliser une image de base Lambda-published gérée comme base. Spécifiez-la à l'aide dubase-image-arnparamètre. VousDockerfiledéfinissez les couches d'application que Lambda construit au-dessus de la base gérée.Les images MicroVM sont versionnées. Chaque version représente une version unique produite à partir d'un artefact de code spécifique et d'une image de base. Une version passe par l'état de construction (
PENDING→IN_PROGRESS→SUCCESSFULouFAILED), et les versions réussies peuvent être définies surACTIVEouINACTIVE. Pour plus de détails sur l'état et la gestion des images, consultezImages de microVM. - Connecteurs réseau
-
Les connecteurs réseau sont des ressources qui contrôlent la manière dont le trafic atteint votre microVM et la manière dont votre microVM atteint les services externes. Vous associez des connecteurs à une microVM au moment de l'exécution pour configurer l'accès entrant et sortant indépendamment.
Build-time et les connecteurs d'exécution peuvent être différents, ce qui permet à votre microVM d'atteindre différents environnements pendant la création de l'image par rapport à l'exécution.
Utilisez les Lambda-provided valeurs par défaut pour l'accès au port entrant (avec authentification JWE), l'accès au shell et la sortie Internet publique. Créez votre propre connecteur réseau pour acheminer le trafic sortant via votre VPC.
Comment Lambda crée votre image
Lorsque vous créez ou mettez à jour une image microVM, Lambda exécute un processus de génération qui produit un instantané Firecracker. Cet instantané capture l'état complètement initialisé de votre application, permettant ainsi le lancement et la reprise quasi instantanés des microVM qui s'exécutent à partir de celle-ci.
Le processus de construction :
-
Lambda provisionne une nouvelle microVM à l'aide de l'image de base gérée que vous avez spécifiée.
-
Lambda exécute vos
Dockerfileinstructions pour installer les dépendances et configurer votre environnement. -
Lambda démarre votre application à l'aide de la commande
ENTRYPOINTorCMD. -
Si vous avez activé le
/readyhook, Lambda attend que votre application indique qu'elle est prête (HTTP 200). -
Lambda capture un instantané de l'état du disque et de la mémoire, y compris de tous les processus en cours d'exécution.
Lorsque vous exécutez une microVM, Lambda la restaure à partir de cet instantané. Votre application reprend son état pré-initialisé sans recommencer le démarrage.
Si votre application génère un contenu unique lors de la création (tel que des identifiants uniques, des secrets ou des connexions réseau), ce contenu est partagé entre toutes les microVM exécutées à partir de la même version d'image. Pour éviter cela, générez un contenu unique une fois que le microVM commence à utiliser le hook du /run cycle de vie. Pour plus de détails, consultez la section sur la compatibilité des instantanés dansImages de microVM.
Cycle de vie des microVM
Au moment de l'exécution, une microVM passe par les étapes suivantes :
-
Courez — Vous appelez
run-microvm. Lambda restaure la microVM à partir de l'instantané d'image, attribue un identifiant unique et crée un point de terminaison. La microVM passe dePENDINGà.RUNNING -
En cours d'exécution : votre application reçoit et traite les demandes via l'URL de son point de terminaison.
-
Suspendre — Après une période d'inactivité configurable (ou via l'
suspend-microvmAPI), le microVM passeSUSPENDINGàSUSPENDED. L'état de la mémoire et du disque est préservé. -
Reprise — La microVM passe du mode
SUSPENDEDdirect auRUNNINGmoment où le trafic arrive (siautoResumeEnabled=true) ou lorsque vous appelezresume-microvm. -
Terminer — La microVM passe du mode
TERMINATINGauTERMINATEDmoment où vous appelezterminate-microvmou au moment où la durée maximale est dépassée.
States
Le tableau suivant décrit chaque état de microVM. Ces états vous permettent de créer des applications fiables et de mettre en œuvre une gestion appropriée des erreurs.
| State | Description |
|---|---|
PENDING |
MicroVM est en cours de provisionnement. Les ressources sont allouées et le snapshot est en cours de chargement. |
RUNNING |
MicroVM est actif et accepte le trafic via l'URL de son point de terminaison. Le /run crochet est terminé. |
SUSPENDING |
MicroVM est suspendu. Le /suspend hook est en cours d'exécution. Le disque et la mémoire sont en cours de contrôle. |
SUSPENDED |
MicroVM est suspendu. L'État est préservé. Aucuns frais de calcul ne sont facturés. Peut être repris ou résilié. |
TERMINATING |
MicroVM est en cours d'arrêt. Le /terminate hook est en cours d'exécution. Des ressources sont en train d'être débloquées. |
TERMINATED |
MicroVM a été résilié. Il s’agit d’un statut de terminal. La microVM ne peut pas être reprise ou redémarrée. |
Transitions entre États
Le tableau suivant indique les transitions valides entre les états de microVM et indique ce qui déclenche chaque transition.
| Initial state (État initial) | État cible | Déclencheur |
|---|---|---|
PENDING |
RUNNING |
Provisionnement terminé, /run crochet réussi. |
RUNNING |
SUSPENDING |
Durée d'inactivité dépassée ou appel suspend-microvm d'API explicite. |
SUSPENDING |
SUSPENDED |
/suspendcrochet terminé, vérification de la mémoire et de l'état du disque. |
SUSPENDED |
RUNNING |
Le trafic arrive (autoResumeEnabled=true) ou appel resume-microvm d'API explicite. |
RUNNING |
TERMINATING |
Appel terminate-microvm d'API explicite, ou maximumDurationInSeconds dépassé. |
SUSPENDED |
TERMINATING |
suspendedDurationSecondsdépassé ou appel d'terminate-microvmAPI explicite. |
TERMINATING |
TERMINATED |
/terminatecrochet terminé, toutes les ressources sont publiées. |
Important
Si votre /run hook échoue ou expire, le microVM peut passer directement à TERMINATING sans jamais l'atteindreRUNNING. Implémentez le délai d'expiration et la gestion des erreurs dans vos hooks pour éviter les pannes silencieuses.