View a markdown version of this page

AWS Lambda Concepts fondamentaux de MicroVMS - AWS Lambda

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 Dockerfile et 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 du base-image-arn paramètre. Your Dockerfile dé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 (PENDINGIN_PROGRESSSUCCESSFUL ouFAILED), et les versions réussies peuvent être définies sur ACTIVE ouINACTIVE. 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 :

  1. Lambda provisionne une nouvelle microVM à l'aide de l'image de base gérée que vous avez spécifiée.

  2. Lambda exécute vos Dockerfile instructions pour installer les dépendances et configurer votre environnement.

  3. Lambda démarre votre application à l'aide de la CMD commande ENTRYPOINT ou.

  4. Si vous avez activé le /ready hook, Lambda attend que votre application signale qu'elle est prête (HTTP 200).

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

  1. Courez — Vous appelezrun-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 de PENDING à. RUNNING

  2. En cours d'exécution  : votre application reçoit et traite les demandes via l'URL de son point de terminaison.

  3. Suspendre  : après une période d'inactivité configurable (ou via l'suspend-microvmAPI), la microVM passe SUSPENDING àSUSPENDED. L'état de la mémoire et du disque est préservé.

  4. Reprise  : la microVM passe du mode retour SUSPENDED direct au RUNNING moment où le trafic arrive (siautoResumeEnabled=true) ou lorsque vous appelezresume-microvm.

  5. Terminer  : la microVM passe TERMINATING au TERMINATED moment où vous appelez terminate-microvm ou 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.