Comprendre les concepts clés de 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 les 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 votre fonction directement à l'aide du LambdaAPI, ou vous pouvez configurer un AWS service ou une ressource pour appeler votre fonction.

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.

Fonction

Une fonction est une ressource que vous pouvez appeler pour exécuter votre code dans Lambda. Une fonction possède un code pour traiter les événements que vous transmettez à la fonction ou que d'autres AWS services lui envoient.

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 appeler une fonction et les mappages de source d’événement. 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 Comprendre les méthodes d'appel de fonctions Lambda et Invoquer Lambda avec des événements provenant d'autres services AWS.

Événement

Un événement est un document JSON formaté qui contient des données à traiter par 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 AWS service invoque votre fonction, il définit la forme de l'événement.

Exemple événement de service — SNS notification Amazon
{ "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 plus d'informations sur les événements liés AWS aux services, consultezInvoquer 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 de plus amples informations, veuillez consulter 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 :

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 de plus amples informations, veuillez consulter 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 pour votre AWS compte. 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 de plus amples informations, veuillez consulter 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 AWS région. Vous pouvez configurer des fonctions individuelles pour limiter leur simultanéité ou leur permettre d’atteindre un niveau spécifique de simultanéité. Pour de plus amples informations, veuillez consulter 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 de plus amples informations, veuillez consulter Gérer les versions des fonctions Lambda.

Destination

Une destination est une AWS ressource dans laquelle Lambda peut envoyer des événements à partir 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 Ajouter une destination.