Comprendre l'environnement d'exécution des instances gérées Lambda - 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.

Comprendre l'environnement d'exécution des instances gérées Lambda

Les instances gérées Lambda fournissent un modèle de déploiement alternatif qui exécute votre code de fonction sur des EC2 instances Amazon appartenant au client, tandis que Lambda gère les aspects opérationnels. L'environnement d'exécution des instances gérées présente plusieurs différences importantes par rapport aux fonctions Lambda (par défaut), notamment en ce qui concerne la façon dont il gère les appels simultanés et les cycles de vie des conteneurs.

Remarque : Pour plus d'informations sur l'environnement d'exécution Lambda (par défaut), voir Comprendre le cycle de vie de l'environnement d'exécution Lambda.

Cycle de vie des environnements d'exécution

Le cycle de vie d'un environnement d'exécution des fonctions Lambda Managed Instances diffère de celui de Lambda (par défaut) de plusieurs manières principales :

Phase d’initialisation

Pendant la phase d'initialisation, Lambda exécute les étapes suivantes :

  • Initialisation et enregistrement de toutes les extensions

  • Démarrez le point d'entrée du runtime. L'environnement d'exécution génère le nombre configuré de travailleurs d'exécution (l'implémentation dépend du temps d'exécution)

  • Exécuter le code d'initialisation de la fonction (code en dehors du gestionnaire)

  • Attendez qu'au moins un agent d'exécution indique qu'il est prêt en appelant /runtime/invocation/next

La phase d'initialisation est considérée comme terminée lorsque les extensions sont initialisées et qu'au moins un programme de travail d'exécution a été appelé. /runtime/invocation/next La fonction est alors prête à traiter les invocations.

Note

Pour les fonctions Lambda Managed Instances, l'initialisation peut prendre jusqu'à 15 minutes. Le délai d'expiration est de 130 secondes maximum ou le délai d'expiration de la fonction configurée (jusqu'à 900 secondes).

Phase d’invocation

La phase d'appel pour les fonctions Lambda Managed Instances présente plusieurs caractéristiques uniques :

Fonctionnement en continu Contrairement à Lambda (par défaut), l'environnement d'exécution reste actif en permanence, traitant les appels au fur et à mesure qu'ils arrivent sans se figer entre les invocations.

Traitement parallèle Plusieurs invocations peuvent être exécutées simultanément dans le même environnement d'exécution, chacune étant gérée par un exécutant différent.

Délais d'attente indépendants. Le délai d'expiration configuré pour la fonction s'applique à chaque appel individuel. Lorsqu'un appel expire, Lambda marque cet appel spécifique comme ayant échoué, mais n'interrompt pas les autres invocations en cours ni ne met fin à l'environnement d'exécution.

Gestion de la contre-pression. Si tous les travailleurs d'exécution sont occupés à traiter des appels, les nouvelles demandes d'appel sont rejetées jusqu'à ce qu'un travailleur soit disponible.

Gestion des erreurs et restauration

La gestion des erreurs dans les environnements d'exécution des fonctions Lambda Managed Instances est différente de celle de Lambda (par défaut) :

Invoquez les délais d'expiration. Lorsqu'un appel individuel expire, Lambda renvoie une erreur de temporisation pour cet appel spécifique mais ne met pas fin à l'environnement d'exécution. Les autres invocations simultanées continuent à être traitées normalement.

Défaillances du Runtime Worker. Si un processus de travail d'exécution se bloque, l'environnement d'exécution continue de fonctionner avec les autres travailleurs sains.

L'extension se bloque. Si un processus d'extension se bloque pendant l'initialisation ou le fonctionnement, l'ensemble de l'environnement d'exécution est marqué comme défectueux et est arrêté. Lambda crée un nouvel environnement d'exécution pour le remplacer.

Aucune réinitialisation/réparation. Contrairement à Lambda (par défaut), les instances gérées ne tentent pas de réinitialiser et de réinitialiser l'environnement d'exécution après des erreurs. Au lieu de cela, les contenants insalubres sont retirés et remplacés par de nouveaux.