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 un instantané et le cycle de vie indique la transition d'une microVM au moment de l'exécution, ce qui constitue la base de la création d'applications avec MicroVMS.
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 de système d'exploitation, permettant un lancement et une reprise quasi instantanés. Les micromachines virtuelles reçoivent des demandes via des connexions HTTPS entrantes et peuvent être suspendues lorsqu'elles sont inactives, préservant ainsi 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 d'application 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 construit votre image ci-dessous).
Pour créer une image microVM, vous devez fournir un package zip contenant un
Dockerfileet les artefacts de votre application, 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. YourDockerfiledéfinit 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 construction unique produite à partir d'un artefact de code et d'une image de base spécifiques. Une version passe par les états 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 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 varier, ce qui permet à votre microVM d'accéder à différents environnements lors de 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 construit 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 un lancement et une reprise quasi instantanés pour les micromachines virtuelles qui s'exécutent à partir de celle-ci.
Le processus de création :
-
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
CMDcommandeENTRYPOINTou. -
Si vous avez activé le
/readyhook, Lambda attend que votre application signale 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 ce snapshot. Votre application reprend son état préinitialisé sans recommencer le démarrage.
Si votre application génère un contenu unique pendant la génération (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 la microVM a commencé à utiliser le hook du /run cycle de vie. Pour plus de détails, consultez la section sur la compatibilité des snapshots dansImages microVM.
Cycle de vie de la 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 la capture 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), la microVM passeSUSPENDINGàSUSPENDED. L'état de la mémoire et du disque est préservé. -
Reprise : la microVM passe du mode retour
SUSPENDEDdirect auRUNNINGmoment où le trafic arrive (siautoResumeEnabled=true) ou lorsque vous appelezresume-microvm. -
Terminer : la microVM passe
TERMINATINGauTERMINATEDmoment où vous appelezterminate-microvmou lorsque la durée maximale est dépassée.
States
Le tableau suivant décrit l'état de chaque microVM. Ces états vous permettent de créer des applications fiables et de mettre en œuvre une gestion des erreurs appropriée.
| State | Description |
|---|---|
PENDING |
La microVM est en cours de provisionnement. Les ressources sont allouées et le snapshot est en cours de chargement. |
RUNNING |
MicroVM est active et accepte le trafic via l'URL de son point de terminaison. Le /run crochet est terminé. |
SUSPENDING |
MicroVM est en cours de suspension. Le /suspend hook est en cours d'exécution. Le disque et la mémoire sont en cours de vérification. |
SUSPENDED |
MicroVM est suspendu. L'État est préservé. Aucun frais de calcul n'est facturé. Peut être repris ou résilié. |
TERMINATING |
MicroVM est en cours de fermeture. Le /terminate hook est en cours d'exécution. Les ressources sont en cours de publication. |
TERMINATED |
MicroVM a été arrêtée. Il s’agit d’un statut de terminal. La microVM ne peut pas être reprise ou redémarrée. |
Transitions d'état
Le tableau suivant indique les transitions valides entre les états de la microVM et indique ce qui déclenche chaque transition.
| Initial state (État initial) | État cible | Déclencheur |
|---|---|---|
PENDING |
RUNNING |
L'approvisionnement est terminé, le /run crochet a réussi. |
RUNNING |
SUSPENDING |
Durée d'inactivité dépassée ou appel suspend-microvm d'API explicite. |
SUSPENDING |
SUSPENDED |
/suspendcrochet terminé, contrôle de l'état de la mémoire et du disque. |
SUSPENDED |
RUNNING |
Le trafic arrive (autoResumeEnabled=true) ou appelle explicitement resume-microvm l'API. |
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 libérées. |
Important
Si votre /run hook échoue ou expire, la microVM peut passer directement à TERMINATING sans jamais l'atteindreRUNNING. Implémentez la gestion des délais et des erreurs dans vos hooks pour éviter les défaillances silencieuses.