Concepts de Lambda - AWS Lambda

Concepts de Lambda

Lambda exécute des instances de votre fonction pour traiter des é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.

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.

Pour plus d'informations, consultez Configuration des fonctions AWS Lambda.

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 Appel de fonctions Lambda et Utilisation de AWS Lambda avec d’autres services.

É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 des services AWS, veuillez consulter Utilisation de AWS Lambda avec d’autres services.

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 plus d'informations, consultez AWS Lambda environnement d’exécution.

Architecture de l’ensemble des instructions

L’architecture de l’ensemble des instructions détermine le type de processeur d’ordinateur que Lambda utilise pour exécuter la fonction. Lambda permet de choisir parmi plusieurs architectures de l’ensemble des instructions :

  • arm64 : architecture ARM 64 bits, pour le processeur Graviton2 AWS.

  • x86_64 : architecture 64 bits x86, pour les processeurs x86.

Pour plus d'informations, consultez Architectures de l’ensemble des instructions 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.

  • 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 plus d'informations, consultez Packages de déploiement Lambda.

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 plus d'informations, 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 plus d'informations, consultez Création et partage de couches Lambda.

Extension

Les extensions Lambda vous permettent d’augmenter vos fonctions. Par exemple, vous pouvez utiliser des extensions pour intégrer vos fonctions à vos outils de surveillance, d’observabilité, de sécurité et de gouvernance préférés. Vous pouvez choisir parmi un vaste éventail d’outils fournis par des AWS Lambdapartenaires, ou créer vos propres extensions Lambda.

Une extension interne s’exécute dans le processus de runtime et partage le même cycle de vie que le runtime. Une extension externe s’exécute en tant que processus distinct dans l’environnement d’exécution. L’extension externe est initialisée avant l’appel de la fonction, s’exécute en parallèle de l’exécution du runtime de la fonction et continue à s’exécuter une fois l’appel de la fonction terminée.

Pour plus d'informations, consultez Utilisation des extensions Lambda.

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 plus d'informations, consultez Gestion de la simultanéité réservée Lambda.

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 plus d'informations, consultez Versions de fonctions Lambda.

Destination (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 Configuration des destinations pour les appels asynchrones.