Présentation des concepts clés de Lambda
Lambda est un service de calcul piloté par les événements qui exécute des instances de votre fonction pour traiter les événements. Vous pouvez appeler la fonction directement à l’aide de l’API Lambda ou vous pouvez configurer un service ou une ressource AWS pour le faire.
Les sections suivantes décrivent certains concepts clés des fonctions Lambda, du modèle de programmation piloté par les événements et de l’environnement dans lequel votre fonction s’exécute.
Concepts
Fonction
Une fonction est une ressource que vous pouvez appeler pour exécuter votre code dans Lambda. Une fonction possède du code pour traiter les événements que vous transmettez à la fonction ou que d’autres Services AWS envoient à la fonction.
Déclencheur
Un déclencheur est une ressource ou une configuration qui appelle une fonction Lambda. Les déclencheurs incluent les Services AWS que vous pouvez configurer pour invoquer une fonction et les mappages des sources d’événements. Un mappage de source d’événement est une ressource dans Lambda qui lit les éléments d’un flux ou d’une file d’attente et appelle une fonction. Pour plus d’informations, consultez Présentation des méthodes d’invocation des fonctions Lambda et Invocation Lambda avec des événements provenant d’autres services AWS.
Événement
Un événement est un document au format JSON qui contient des données à traiter pour une fonction Lambda. Le runtime convertit l’événement en objet et le transmet au code de votre fonction. Lorsque vous appelez une fonction, vous déterminez la structure et le contenu de l’événement.
Exemple événement personnalisé – données météorologiques
{ "TemperatureK": 281, "WindKmh": -3, "HumidityPct": 0.55, "PressureHPa": 1020 }
Lorsqu’un service AWS appelle votre fonction, il définit la forme de l’événement.
Exemple événement de service – notification Amazon SNS
{ "Records": [ { "Sns": { "Timestamp": "2019-01-02T12:45:07.000Z", "Signature": "tcc6faL2yUC6dgZdmrwh1Y4cGa/ebXEkAi6RibDsvpi+tE/1+82j...65r==", "MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e", "Message": "Hello from SNS!", ...
Pour de plus amples informations sur les événements provenant d’Services AWS, consultez Invocation Lambda avec des événements provenant d’autres services AWS.
Environnement d’exécution
Un environnement d’exécution fournit un environnement de runtime sécurisé et isolé pour votre fonction Lambda. Un environnement d’exécution gère les processus et les ressources nécessaires à l’exécution de la fonction. L’environnement d’exécution prend en charge le cycle de vie pour la fonction et pour toutes les extensions associées à votre fonction.
Pour en savoir plus, consultez Comprendre le cycle de vie de l’environnement d’exécution Lambda.
Package de déploiement
Vous déployez votre code de fonction Lambda à l’aide d’un package de déploiement. Lambda prend en charge deux types de packages de déploiement :
-
Une archive de fichiers .zip qui contient le code et les dépendances de votre fonction. Lambda fournit le système d’exploitation et le runtime pour votre fonction. Pour en savoir plus, consultez Déploiement des fonctions Lambda comme des archives de fichiers .zip.
-
Une image de conteneur compatible avec la spécification OCI (Open Container Initiative, ou initiative de conteneur ouvert)
. Vous ajoutez votre code de fonction et ses dépendances à l’image. Vous devez également inclure le système d’exploitation et un runtime Lambda. Pour en savoir plus, consultez Création d’une fonction Lambda à l’aide d’une image de conteneur.
Environnement d’exécution
Le runtime fournit un environnement spécifique au langage qui s’exécute dans un environnement d’exécution. Le runtime relaie les événements d’appel, les informations de contexte et les réponses entre Lambda et la fonction. Vous pouvez utiliser les runtimes que Lambda fournit, ou créer vos propres runtimes. Si vous conditionnez votre code sous la forme d’une archive de fichiers .zip, vous devez configurer votre fonction pour utiliser un runtime correspondant à votre langage de programmation. Pour une image de conteneur, vous incluez le runtime lorsque vous créez l’image.
Pour en savoir plus, consultez Environnements d’exécution (runtimes) Lambda.
Couche
Une couche Lambda est une archive de fichiers .zip qui peut contenir du code supplémentaire ou autre chose. Une couche peut contenir des bibliothèques, un environnement d’exécution personnalisé, des données ou des fichiers de configuration.
Les couches sont un moyen pratique de conditionner en package des bibliothèques et d’autres dépendances que vous pouvez utiliser avec vos fonctions Lambda. L’utilisation de couches réduit la taille des archives de déploiement chargées et accélère le déploiement de votre code. Les couches favorisent également le partage de code et la séparation des responsabilités afin que vous puissiez effectuer plus rapidement des itérations lors de l’écriture de la logique métier.
Vous pouvez inclure jusqu’à cinq couches par fonction. Les couches sont comptabilisées dans les quotas de taille de déploiement Lambda standard. Lorsque vous incluez une couche dans une fonction, le contenu est extrait dans le /opt
répertoire de l’environnement d’exécution.
Par défaut, les couches que vous créez sont privées à votre compte AWS. Vous pouvez choisir de partager une couche avec d’autres comptes ou de la rendre publique. Si vos fonctions consomment une couche publiée par un autre compte, vos fonctions peuvent continuer à utiliser la version de la couche après qu’elle a été supprimée ou après la révocation de votre autorisation d’accès à la couche. Toutefois, vous ne pouvez pas créer de nouvelle fonction ou mettre à jour des fonctions à l’aide d’une version de couche supprimée.
Les fonctions déployées en tant qu’image de conteneur n’utilisent pas de couches. En lieu et place, vous conditionnez vos runtimes, bibliothèques et autres dépendances préférés en image de conteneur, lorsque vous créez l’image.
Pour en savoir plus, consultez Gestion des dépendances Lambda à l’aide de couches.
Concurrency
La simultanéité est le nombre de demandes auxquelles votre fonction répond à un moment donné. Lors de l’appel de votre fonction, Lambda approvisionne une instance de celle-ci pour traiter l’événement. Lorsque le code de la fonction a fini de s’exécuter, il peut gérer une autre demande. Si la fonction est appelée à nouveau alors qu’une demande est toujours en cours de traitement, une autre instance est fournie, ce qui augmente la simultanéité de la fonction.
La simultanéité est soumise à des quotas au niveau de la région AWS. Vous pouvez configurer des fonctions individuelles pour limiter leur simultanéité ou leur permettre d’atteindre un niveau spécifique de simultanéité. Pour en savoir plus, consultez Configuration de la simultanéité réservée pour une fonction.
Qualificateur
Lorsque vous appelez ou affichez une fonction, vous pouvez inclure un qualificateur pour spécifier une version ou un alias. Une version est un instantané immuable du code et de la configuration d’une fonction ayant un qualificateur numérique. Par exemple, my-function:1
. Un alias est un pointeur vers une version que vous pouvez mettre à jour pour un mappage avec une version différente, ou pour le fractionnement du trafic entre deux versions. Par exemple, my-function:BLUE
. Vous pouvez utiliser des versions et des alias ensemble pour fournir une interface stable permettant aux clients d’appeler votre fonction.
Pour en savoir plus, consultez Gestion des versions d’une fonction Lambda.
Destination
Une destination est une ressource AWS à laquelle Lambda peut envoyer les événements d’un appel asynchrone. Vous pouvez configurer une destination pour les événements dont le traitement échoue. Certains services prennent également en charge une destination pour les événements dont le traitement aboutit.
Pour de plus amples informations, veuillez consulter Ajout d’une destination.