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

Avant la fonction AWS Lambda, comprenons :

Qu'est-ce que Serverless?

Serverless est un terme qui fait généralement référence aux applications sans serveur. Les applications sans serveur ne nécessitent aucune mise à disposition de serveur et ne nécessitent pas de gestion de serveurs.

Qu'est-ce qu'AWS Lambda?

AWS Lambda est une plate-forme informatique sans serveur basée sur les événements fournie par Amazon faisant partie de Amazon Services Web. Par conséquent, vous n'avez pas à vous soucier des ressources AWS à lancer ni de la manière dont vous allez les gérer. Au lieu de cela, vous devez mettre le code sur Lambda et il s'exécute.

Dans AWS Lambda, le code est exécuté en fonction de la réponse aux événements des services AWS tels que l'ajout/suppression de fichiers dans le compartiment S3, la requête HTTP de Amazon Passerelle API, etc. 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
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, Python, Go et C# sont quelques-uns 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 facture uniquement 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
  • Lorsque l'URL du point de terminaison HTTP get/post est atteinte
  • 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

Attention: N'oubliez pas que vous facturerez les services AWS uniquement 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.

  • Insérer, mettre à jour et supprimer des données 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 pour effectuer la tâche à des heures régulières.
  • 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:

Le runtime permet des fonctions dans différents langages qui s'exécutent sur le même environnement d'exécution de base. Cela vous aide à configurer votre fonction au moment de l'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é. Cette fonction de déclenchement vous aide à 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 journaux vous permet d'annoter votre code de 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 avec l'exemple AWS Lambda :

Étape 1) Étape 1) Ouvrez l'URL AWS Lambda
Aller à https://aws.amazon.com/lambda/ et commencer

Comment utiliser AWS Lambda

Étape 2) Créer un compte
Ensuite, créez un compte ou connectez-vous avec votre compte existant

Étape 3) Modifiez le code et cliquez sur Exécuter,
Dans la prochaine page Lambda,

  1. Modifier le code
  2. Cliquez sur Exécuter

Comment utiliser AWS Lambda

Étape 4) Vérifier la sortie
Vous verrez la sortie

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 (laaS). Il fournit des ressources informatiques virtualisées.
Flexibilité N'offre aucune flexibilité pour se connecter aux instances de calcul. Il vous permet de choisir un système d'exploitation ou un langage d'exécution personnalisé. Offre la flexibilité de sélectionner la variété d'instances, de systèmes d'exploitation personnalisés, de correctifs de sécurité et de réseau, etc.
Processus d'installation Vous devez sélectionner votre environnement dans lequel vous souhaitez exécuter le code et transférer le code dans 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 Il est limité à quelques langues. Aucune restriction d'environnement.

AWS Lambda contre AWS Elastic Beanstalk

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

Paramètres AWS Elastic 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 est utilisé pour exécuter et exécuter votre code back-end. Vous ne pouvez pas l'utiliser pour déployer une application.
Sélection de ressources AWS Il vous donne la liberté de sélectionner les ressources AWS ; Par exemple, vous pouvez choisir l'instance EC2 qui est 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 utilisé pour un large éventail d'applications telles que :

  • Vous aide pour le 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
  • Back-ends évolutifs (applications mobiles, appareils IoT)
  • Vous aide à exécuter la logique backend côté serveur
  • Vous permet de filtrer et de transformer les données

Meilleures pratiques de la fonction Lambda

Voici quelques bonnes pratiques de AWS Fonctions lambda :

  • Utilisez le bon « délai d’attente ».
  • Utiliser les fonctions de stockage local d'une taille de 500 Mo dans le dossier /temp
  • Minimiser l'utilisation de code de démarrage qui n'est pas directement lié au traitement de l'événement en cours.
  • 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 dans lesquelles Lambda n'est sûrement pas une option idéale :

  • Il n'est pas approprié d'utiliser des packages logiciels ou des applications AWS Lambda qui reposent sur l'appel sous-jacent 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 ou l'affinité matérielle.

Avantages de l'utilisation d'AWS Lambda

Voici les avantages/avantages de l'utilisation d'AWS lambda :

  • AWS Lambda est un outil très flexible à utiliser
  • Il vous aide à accorder l'accès aux ressources, y compris les VPC
  • Écrivez directement avec WYSIWÉditeur YG en console.
  • Vous pouvez l'utiliser comme plugin pour Eclipse ainsi que Visual Studio.
  • Comme il s'agit d'une architecture sans serveur, vous n'avez pas à vous soucier de la gestion ou du provisionnement 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 en avez juste besoin pour le temps de calcul nécessaire, 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 provisioning ou de gérer tout autre serveur
  • Vous aide à exécuter le code uniquement en cas de besoin
  • 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 minuteries externes ; il peut être utilisé 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 s'appuie entièrement sur AWS pour l'infrastructure, vous ne pouvez donc pas installer de logiciel supplémentaire si votre code l'exige.
  • L'exécution simultanée est limitée à 100
  • AWS Lambda dépendait entièrement d'AWS pour l'infrastructure ; vous ne pouvez pas installer de logiciel supplémentaire si votre code l'exige.
  • Son volume mémoire peut varier entre 128 à 1536 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 du code n'est que de 5 minutes.

Résumé

  • Serverless est un terme qui fait généralement référence aux applications sans serveur.
  • AWS Lambda est l'un de ces services de calcul sans serveur. Par conséquent, vous n'avez pas à vous soucier des ressources AWS à lancer ni de la manière dont elles les géreront.
  • Une fonction est un programme ou un script qui s'exécute dans AWS Lambda sans serveur.
  • Le runtime permet des fonctions dans différents langages qui s'exécutent sur le même environnement d'exécution de base.
  • Une source d'événement est un service AWS, tel que Amazon SNS, ou un service personnalisé.
  • 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.
  • Le flux de journaux vous permet d'annoter votre code de fonction avec des instructions de journalisation personnalisées qui vous aident à analyser le flux d'exécution et les performances de vos fonctions Lambda.
  • 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 (laaS). Il fournit des ressources informatiques virtualisées.
  • Déployez et gérez les applications sur AWS Cloud sans vous soucier de l'infrastructure qui exécute ces applications.
  • AWS Lambda est utilisé pour exécuter et exécuter votre code back-end. Vous ne pouvez pas l'utiliser pour déployer une application.
  • AWS Lambda vous aide pour le Processus ETL.
  • La meilleure pratique de la fonction Lambda dans AWS consiste à utiliser le bon « délai d'attente ».
  • Il n'est pas approprié d'utiliser des packages logiciels ou des applications AWS Lambda qui reposent sur l'appel sous-jacent Windows RPC
  • AWS Lambda est un outil très flexible.
  • L'outil AWS Lambda n'est pas adapté aux petits projets.
  • Un événement courant qui sera déclenché lorsque vous utilisez AWS Lambda est l'insertion, la mise à jour et la suppression de la table Dynamo DB de données.