Exécution de code avec Lambda
Lorsque vous écrivez une fonction Lambda, vous créez du code qui s’exécute dans un environnement sans serveur unique. Comprendre comment Lambda exécute réellement votre code implique deux aspects essentiels : le modèle de programmation, qui définit la façon dont votre code interagit avec Lambda, et le cycle de vie de l’environnement d’exécution, qui détermine la manière dont Lambda gère l’environnement d’exécution de votre code.
Le modèle de programmation Lambda
Modèle de programmation fonctionne comme un ensemble de règles communes régissant la façon dont Lambda fonctionne avec votre code, que vous écriviez en Python, en Java ou dans tout autre langage pris en charge. Le modèle de programmation inclut votre environnement d’exécution et votre gestionnaire.
-
Lambda reçoit un événement.
-
Lambda utilise l’environnement d'exécution (comme Python ou Java) pour préparer l’événement dans un format que votre code peut utiliser.
-
L’environnement d’exécution envoie l’événement formaté à votre gestionnaire.
-
Votre gestionnaire traite l’événement en utilisant le code que vous avez écrit dans votre fonction Lambda.
Le gestionnaire, auquel Lambda envoie des événements à traiter par votre code, est essentiel à ce modèle. Considérez-le comme le point d’entrée de votre code. Lorsque Lambda reçoit un événement, il le transmet à votre gestionnaire avec certaines informations contextuelles. Le gestionnaire exécute ensuite votre code pour traiter ces événements. Par exemple, il peut lire un fichier lorsqu’il est chargé sur Amazon S3, analyser une image ou mettre à jour une base de données. Une fois que votre code a fini de traiter un événement, le gestionnaire est prêt à traiter le suivant.
Le modèle d’exécution Lambda
Bien que le modèle de programmation définisse la manière dont Lambda interagit avec votre code, c’est dans Environnement d’exécution que Lambda exécute réellement votre fonction. Il s’agit d’un espace de calcul sécurisé et isolé créé spécifiquement pour votre fonction. Chaque environnement suit un cycle de vie en trois phases.
-
Initialisation : Lambda crée l’environnement et prépare tout pour exécuter votre fonction. Cela inclut la configuration de l’environnement d’exécution que vous avez choisi, le chargement de votre code et l’exécution de tout code de démarrage que vous avez écrit.
-
Invocation : lorsque des événements arrivent, Lambda utilise cet environnement pour exécuter votre fonction. L’environnement peut traiter de nombreux événements au fil du temps, les uns après les autres. Quand le nombre d’événements entrants augmente, Lambda crée des environnements supplémentaires pour répondre à la demande croissante. Quand la demande baisse, Lambda arrête les environnements qui ne sont plus nécessaires.
-
Arrêt : Lambda finit par arrêter les environnements. Avant de faire cela, cela donne à votre fonction la possibilité de nettoyer les tâches restantes.
Cet environnement gère les aspects importants de l’exécution de votre fonction. Il fournit à votre fonction de la mémoire et un répertoire /tmp pour le stockage temporaire. Il gère les ressources, comme les connexions de base de données, entre les invocations, afin que votre fonction puisse les réutiliser. Il propose des fonctionnalités comme la simultanéité provisionnée, dans le cadre de laquelle Lambda prépare les environnements à l’avance pour améliorer les performances.