Qu'est-ce qu'AWS Lambda ? Fonction Lambda avec exemples

⚡ Résumé intelligent

AWS Lambda est une plateforme informatique sans serveur et pilotée par les événements. Amazon Des services Web qui exécutent votre code en réponse à des déclencheurs, gérant automatiquement le provisionnement, la mise à l'échelle et la gestion des serveurs afin que vous puissiez vous concentrer uniquement sur la logique métier.

  • ☁️ Modèle sans serveur : AWS Lambda exécute du code sans provisionnement ni gestion de serveurs, éliminant ainsi les problèmes de mise à jour du système d'exploitation, de mise à l'échelle et de planification de la capacité.
  • | Exécution pilotée par les événements : Les fonctions sont déclenchées par des services AWS tels que S3, DynamoDB, API Gateway et SNS, ne s'exécutant que lorsqu'un événement se produit.
  • 🧩 Support linguistique: Lambda prend en charge Node.js, Python, Java, Go, C# et Ruby, ainsi que des environnements d'exécution personnalisés pour d'autres langages.
  • ???? Paiement à l'utilisation : BillL'utilisation s'applique uniquement pendant l'exécution du code, mesurée en millisecondes, avec un forfait mensuel gratuit permanent d'un million de requêtes.
  • Concepts de base : Les fonctions, les environnements d'exécution, les sources d'événements, les couches et les flux de journaux définissent la manière dont Lambda exécute et gère le code.
  • 🤖 Aide à l'IA : GitHub Copilot et Amazon Q génère du code Lambda, tandis que Lambda orchestre l'inférence de l'IA générative via Amazon substrat rocheux.

Qu'est-ce qu'AWS Lambda ?

Avant d'explorer AWS Lambda, il est utile de comprendre ce que signifie le concept de « sans serveur ».

Qu'est-ce que Serverless?

Le terme « sans serveur » désigne généralement les applications qui ne nécessitent aucun serveur et n'ont donc pas besoin d'être gérées par l'utilisateur.

Qu'est-ce qu'AWS Lambda?

AWS Lambda est une plate-forme informatique sans serveur basée sur les événements et fournie par Amazon faisant partie de Amazon Services Web. Vous n'avez donc pas à vous soucier des ressources AWS à déployer ni de leur gestion. Il vous suffit de placer le code sur Lambda, et il s'exécutera.

Dans AWS Lambda, le code est exécuté en fonction de la réponse aux événements des services AWS, tels que l'ajout ou la suppression de fichiers dans un compartiment S3, ou une requête HTTP provenant d'une source de données. Amazon Passerelle API et événements similaires. Cependant, Amazon Lambda ne peut être utilisé que pour exécuter des tâches en arrière-plan.

La fonction AWS Lambda vous aide à vous concentrer sur votre produit principal et votre logique métier au lieu de gérer le contrôle d'accès au système d'exploitation (OS), les correctifs du système d'exploitation, le dimensionnement approprié, le provisionnement, la mise à l'échelle, etc.

Comment fonctionne AWS Lambda ?

L'exemple AWS Lambda suivant avec diagramme explique le fonctionnement d'AWS Lambda en quelques étapes simples :

Schéma fonctionnel AWS Lambda

Étape 1 : Téléchargez d'abord votre code AWS Lambda dans n'importe quelle langue prise en charge par AWS Lambda. Java, PythonGo et C# font partie des langages pris en charge par la fonction AWS Lambda.

Étape 2 : Voici quelques services AWS qui vous permettent de déclencher AWS Lambda.

Étape 3 : AWS Lambda vous aide à télécharger du code et les détails de l'événement sur lequel il doit être déclenché.

Étape 4 : Exécute le code AWS Lambda lorsqu'il est déclenché par les services AWS.

Étape 5 : AWS ne facture que lorsque le code AWS Lambda s'exécute, et pas autrement.

Cela se produira dans les scénarios suivants :

  • Télécharger des fichiers dans un compartiment S3
  • Lorsqu'un point de terminaison HTTP GET/POST URL est frappé
  • Pour ajouter, modifier et supprimer des tables Dynamo DB
  • En cours de collecte de flux de données
  • Notification push
  • Hébergement de site internet
  • Envoi d'e-mails

À noter: N'oubliez pas que vous ne serez facturé pour les services AWS que lorsque le code AWS Lambda s'exécutera ; sinon, vous n'aurez rien à payer.

Événements qui déclenchent AWS Lambda

Voici les événements qui seront déclenchés lorsque vous utiliserez AWS Lambda.

  • Insertion, mise à jour et suppression de données dans une table Dynamo DB
  • Pour inclure les notifications push dans SNS
  • Pour rechercher l'historique des journaux dans CloudTrail
  • Entrée dans un objet S3
  • DynamoDB peut déclencher AWS Lambda chaque fois que des données sont ajoutées, modifiées et supprimées dans la table.
  • Vous aide à planifier l'événement afin d'exécuter la tâche selon un calendrier régulier.
  • Modifications apportées aux objets dans les compartiments S3
  • Notifications envoyées depuis Amazon SRS.
  • AWS Lambda peut être utilisé pour traiter les journaux CloudTrail.
  • API Gateway vous permet de déclencher AWS Lambda sur les méthodes GET/POST.

AWS Lambda Concepts

Fonction: Une fonction est un programme ou un script qui s'exécute dans AWS Lambda. Lambda transmet les événements d'appel à votre fonction, qui traite un événement et renvoie sa réponse.

Temps d'exécution: L'environnement d'exécution permet aux fonctions écrites dans différents langages de s'exécuter sur le même environnement de base. Cela vous aide à configurer votre fonction dans l'environnement d'exécution. Il correspond également à votre sélection. langage de programmation.

Source de l'événement : Une source d'événement est un service AWS, tel que Amazon SNS ou un service personnalisé. Ce déclencheur permet à la fonction d'exécuter sa logique.

Couches Lambda : Les couches Lambda constituent un mécanisme de distribution important pour les bibliothèques, les environnements d'exécution personnalisés et d'autres dépendances de fonctions importantes. Ce composant AWS vous aide également à gérer le code de votre fonction de développement séparément du code immuable et des ressources qu'il utilise.

Flux de journaux : Le flux de journalisation vous permet d'annoter le code de votre fonction avec des instructions de journalisation personnalisées qui vous aident à analyser le flux d'exécution et les performances de vos fonctions AWS Lambda.

Comment utiliser AWS Lambda

Nous allons maintenant apprendre à utiliser AWS Lambda à l'aide d'un exemple :

Étape 1) Ouvrir AWS Lambda URL

Allez dans https://aws.amazon.com/lambda/ et commencez.

Comment utiliser AWS Lambda

Étape 2) Créez un compte

Ensuite, créez un compte ou connectez-vous avec votre compte existant.

Comment utiliser AWS Lambda

Étape 3) Modifiez le code et cliquez sur Exécuter

Sur la page Lambda suivante, modifiez le code et cliquez sur Exécuter.

Étape 4) Vérifier la sortie

Vous verrez le résultat.

Comment utiliser AWS Lambda

AWS Lambda contre AWS EC2

Voici quelques différences majeures entre AWS Lambda et EC2.

Paramètres AWS Lambda AWS EC2
Définition AWS Lambda est une plateforme en tant que service (PaaS). Il vous aide à exécuter et à exécuter votre code backend. AWS EC2 est une infrastructure en tant que service (IaaS). Elle fournit des ressources informatiques virtualisées.
Souplesse Il n'offre aucune flexibilité pour se connecter aux instances de calcul. Il vous permet de choisir un système d'exploitation ou un environnement d'exécution personnalisé. Offre la possibilité de sélectionner diverses instances, systèmes d'exploitation personnalisés, correctifs de sécurité, réseaux, etc.
Processus d'installation Vous devez sélectionner l'environnement dans lequel vous souhaitez exécuter le code et le transférer vers AWS Lambda. Pour la première fois dans EC2, vous devez choisir le système d'exploitation et installer tous les logiciels requis puis pousser votre code dans EC2.
Restrictions environnementales Elle est limitée à quelques langues. Aucune restriction d'environnement.

AWS Lambda VS AWS Elastic Beanstalk

Voici quelques différences majeures entre AWS Lambda et Elastic Beanstalk.

Paramètres AWS Élastique Beanstalk AWS Lambda
Tâche principale Déployez et gérez les applications sur AWS Cloud sans vous soucier de l'infrastructure qui exécute ces applications. AWS Lambda sert à exécuter votre code backend. Vous ne pouvez pas l'utiliser pour déployer une application.
Sélection de ressources AWS Cela vous donne la liberté de sélectionner les ressources AWS ; par exemple, vous pouvez choisir une instance EC2 optimale en fonction de votre application. Vous ne pouvez pas sélectionner les ressources AWS, comme un type d'instance EC2 ; Lambda propose des ressources en fonction de votre charge de travail.
Type de système C'est un système avec état. C'est un système apatride.

Cas d'utilisation d'AWS Lambda

AWS Lambda est utilisé pour un large éventail d'applications telles que :

  • Vous aide avec Processus ETL
  • Vous permet d'effectuer un traitement de fichiers en temps réel et un traitement de flux en temps réel
  • Utiliser pour créer des applications Web
  • Utiliser dans Amazon des produits comme Alexa Chatbots et Amazon Écho/Alexa
  • Traitement des données (analyse de streaming en temps réel)
  • Sauvegardes automatisées des tâches quotidiennes
  • Infrastructures dorsales évolutives (applications mobiles, appareils IoT)
  • Vous aide à exécuter la logique backend côté serveur
  • Permet de filtrer et de transformer les données

Meilleures pratiques de la fonction Lambda

Voici quelques bonnes pratiques pour les fonctions AWS Lambda :

  • Utilisez le bon « délai d’attente ».
  • Utilisez les fonctions du stockage local de 500 Mo situé dans le dossier /temp.
  • Réduisez au minimum l'utilisation du code de démarrage qui n'est pas directement lié au traitement de l'événement actuel.
  • Vous devez utiliser la surveillance CloudWatch intégrée de vos fonctions Lambda pour afficher et optimiser les latences des requêtes.

Quand ne pas utiliser AWS Lambda

Voici les situations où Lambda n'est certainement pas une option idéale :

  • Il n'est pas approprié d'utiliser AWS Lambda pour les progiciels ou les applications qui dépendent de l'appel à des fonctions sous-jacentes. Windows RPC.
  • S'il est utilisé pour des applications logicielles personnalisées avec des accords de licence comme le traitement de documents MS-Office, Oracle bases de données, etc
  • AWS Lambda ne doit pas être utilisé pour des processus matériels personnalisés tels que l'accélération GPU et l'affinité matérielle.

Avantages de l'utilisation d'AWS Lambda

Voici les avantages de l'utilisation d'AWS Lambda :

  • AWS Lambda est un outil extrêmement flexible à utiliser.
  • Il vous permet d'accorder l'accès aux ressources, y compris aux VPC.
  • Auteur directement avec un WYSIWÉditeur YG dans la console.
  • Vous pouvez l'utiliser comme plugin pour Eclipse et Visual Studio.
  • Comme il s'agit d'une architecture sans serveur, vous n'avez pas à vous soucier de la gestion ou de la mise en service des serveurs.
  • Vous n'avez pas besoin de configurer de Machine virtuelle.
  • Aide les développeurs à exécuter et à exécuter la réponse du code aux événements sans construire d'infrastructure.
  • Vous ne payez que le temps de calcul utilisé, et uniquement lorsque votre code s'exécute.
  • Vous pouvez surveiller les performances de votre code en temps réel via CloudWatch.
  • Il vous permet d'exécuter votre code sans avoir à provisionner ni à gérer aucun autre serveur.
  • Permet d'exécuter le code uniquement lorsque cela est nécessaire.
  • Vous pouvez le faire évoluer automatiquement pour traiter quelques requêtes par jour et même prendre en charge plus de milliers de requêtes par seconde.
  • AWS Lambda peut être configuré à l'aide de minuteurs d'événements externes pour effectuer des tâches planifiées.
  • La fonction Lambda dans AWS doit être configurée avec des événements et des minuteurs externes afin de pouvoir être utilisée pour la planification.
  • Les fonctions Lambda sont sans état afin de pouvoir être mises à l'échelle rapidement.
  • AWS Lambda est rapide et exécutera donc votre code en quelques millisecondes.

Limites d'AWS Lambda

Voici les inconvénients/inconvénients de l'utilisation d'AWS Lambda :

  • L'outil AWS Lambda n'est pas adapté aux petits projets.
  • AWS Lambda repose entièrement sur AWS pour son infrastructure ; vous ne pouvez donc pas installer de logiciel supplémentaire si votre code l'exige.
  • L'exécution simultanée est limitée par défaut à 1 000 par région, et ce nombre peut être augmenté sur demande.
  • Sa capacité de mémoire peut varier entre 128 Mo et 10 240 Mo.
  • La demande d'événement ne doit pas dépasser 128 Ko.
  • Les fonctions Lambda vous aident à écrire leurs journaux uniquement dans CloudWatch. C'est le seul outil qui vous permet de surveiller ou de dépanner vos fonctions.
  • Son délai d'exécution est limité à 15 minutes.

FAQ

AWS Lambda prend en charge nativement Node.js, Python, JavaGo, C#, PowerShell et Ruby sont pris en charge. Grâce à une API d'exécution et à la compatibilité avec les images conteneurisées, vous pouvez exécuter presque n'importe quel autre langage, ce qui permet aux équipes de s'affranchir des limitations liées à leur pile technologique préférée.

AWS Lambda inclut un forfait gratuit permanent d'un million de requêtes et de 400 000 Go-secondes de calcul par mois. Au-delà, vous ne payez que les requêtes et le temps de calcul réellement utilisé par votre code, facturés à la milliseconde.

Un démarrage à froid correspond au court délai pendant lequel Lambda initialise un nouvel environnement d'exécution pour une fonction restée inactive. Vous pouvez le réduire grâce à la concurrence provisionnée, des packages plus petits ou SnapStart. Java fonctions.

Oui. Outre le téléchargement d'une archive ZIP, Lambda vous permet d'empaqueter une fonction sous forme d'image conteneur jusqu'à 10 Go. Cela convient aux dépendances volumineuses et aux bibliothèques d'apprentissage automatique tout en conservant…ping le même modèle d'exécution événementiel et sans serveur.

Lambda exécute des fonctions courtes et événementielles avec mise à l'échelle automatique et facturation à la milliseconde. AWS Fargate exécute des charges de travail conteneurisées plus longues sans gestion de serveurs. Choisissez Lambda pour des réponses rapides aux événements et Fargate pour des tâches conteneurisées stables et de longue durée.

Oui. Lambda alimente couramment les applications d'IA en exécutant des inférences légères et en orchestrant les appels à des services comme Amazon Bedrock et SageMaker. La prise en charge des images conteneurisées permet d'empaqueter les bibliothèques d'apprentissage automatique, tandis que Lambda gère la mise à l'échelle du pipeline d'IA générative.

Oui. Copilote GitHub écrit des fonctions de gestion à partir d'un commentaire ou d'un nom, tandis que Amazon Q Developer ajoute une assistance compatible AWS pour les politiques IAM, CloudFormation et les appels SDK, accélérant ainsi le développement sans serveur.

Attribuez à chaque fonction un rôle IAM à privilèges minimaux, stockez les secrets dans des variables d'environnement chiffrées ou dans Secrets Manager, et placez les fonctions sensibles dans un VPC. CloudWatch et CloudTrail enregistrent ensuite l'activité à des fins de surveillance et d'audit.

Résumez cet article avec :