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

Table des matières:

Anonim

Avant la fonction AWS Lambda, comprenons:

Qu'est-ce que Serverless?

Serverless est un terme qui désigne généralement les applications sans serveur. Les applications sans serveur sont celles qui ne nécessitent aucune fourniture 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 dans le cadre d'Amazon Web Services. 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 placer le code sur Lambda et il s'exécute.

Dans AWS Lambda, le code est exécuté en fonction de la réponse d'événements dans les services AWS tels que l'ajout / la suppression de fichiers dans le compartiment S3, la requête HTTP de la passerelle d'API Amazon, 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 la logique métier au lieu de gérer le contrôle d'accès du système d'exploitation (OS), les correctifs du système d'exploitation, le dimensionnement à droite, l'approvisionnement, la mise à l'échelle, etc.

Dans ce didacticiel AWS Lambda pour les débutants, vous apprendrez:

  • Comment fonctionne AWS Lambda?
  • Événements qui déclenchent AWS Lambda
  • Concepts AWS Lambda
  • AWS Lambda VS AWS EC2
  • AWS Lambda VS AWS Elastic Beanstalk
  • Cas d'utilisation d'AWS Lambda
  • Meilleures pratiques de la fonction Lambda
  • Quand ne pas utiliser AWS Lambda
  • Avantages de l'utilisation d'AWS Lambda
  • Limitations d'AWS Lambda

Comment fonctionne AWS Lambda?

L'exemple AWS Lambda suivant avec schéma de principe explique le fonctionnement d'AWS Lambda en quelques étapes simples:

Étape 1: commencez par télécharger votre code AWS Lambda dans n'importe quelle langue prise en charge par AWS Lambda. Java, Python, Go 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 le code et les détails de l'événement sur lequel il doit être déclenché.

Étape 4: exécute AWS Lambda Code 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
  • 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 Web
  • Envoi d'e-mails

Remarque: Vous devez vous rappeler que vous ne facturerez les services AWS que lorsque le code AWS Lambda s'exécute, sinon vous n'avez rien à payer.

Événements qui déclenchent AWS Lambda

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

  • Insérer, mettre à jour et supprimer des données Table Dynamo DB
  • Pour inclure des 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 à un rythme régulier.
  • Modifications des objets dans les compartiments S3
  • Notifications envoyées depuis Amazon SNS.
  • 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.

Concepts AWS Lambda

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:

Runtime permet des fonctions dans différentes langues 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 langage de programmation sélectionné.

Source de l'événement:

Une source d'événement est un service AWS, tel qu'Amazon SNS, ou un service personnalisé. Cette fonction de déclenchement vous aide à exécuter sa logique.

Couches Lambda:

Les couches Lambda sont 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 votre code de 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 ) Allez sur https://aws.amazon.com/lambda/ et commencez

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

Étape 3 ) Dans la page Lambda suivante,

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

Étape 4 ) Vous verrez la sortie

AWS Lambda VS AWS EC2

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

Paramètres AWS Lambda AWS EC2
Définition AWS Lambda est une plate-forme 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.
Souplesse N'offre aucune flexibilité pour se connecter aux instances de calcul. Il vous permet de choisir un système d'exploitation personnalisé ou une langue d'exécution. 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 le pousser dans AWS Lambda. Pour la première fois dans EC2, vous devez choisir le système d'exploitation et installer tous les logiciels nécessaires, puis pousser votre code dans EC2.
Restrictions d'environnement Il est limité à 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 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 des ressources AWS Cela 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 sans état.

Cas d'utilisation d'AWS Lambda

AWS Lambda est utilisé pour une large gamme 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
  • Utilisation dans les produits Amazon comme Alexa Chatbots et Amazon Echo / Alexa
  • Traitement des données (analyse en continu en temps réel)
  • Sauvegardes automatisées des tâches quotidiennes
  • Back-ends évolutifs (applications mobiles, appareils loT)
  • 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 relatives aux fonctions AWS Lambda:

  • Utilisez le bon «délai».
  • Utilisez les fonctions de stockage local d'une taille de 500 Mo dans le dossier / temp
  • Minimiser l'utilisation du 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 demandes.

Quand ne pas utiliser AWS Lambda

Voici la situation dans laquelle Lambda n'est certainement 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 de RPC Windows sous-jacents
  • Si est utilisé pour les applications logicielles personnalisées avec des accords de licence tels que le traitement de documents MS-Office, les bases de données Oracle, etc.
  • AWS Lambda ne doit pas être utilisé pour des processus matériels personnalisés tels que l'accélération GPU, 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
  • Créez directement avec l'éditeur WYSIWYG 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 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 créer d'infrastructure.
  • Vous en avez juste besoin pour le temps de calcul pris, 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 provisionnement ou de gérer tout autre serveur
  • Vous aide à exécuter le code uniquement lorsque cela est nécessaire
  • Vous pouvez le mettre à l'échelle automatiquement pour traiter quelques demandes par jour et même prendre en charge plus de milliers de demandes 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 votre code en quelques millisecondes.

Limitations d'AWS Lambda

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

  • L'outil AWS Lambda ne convient pas aux petits projets.
  • AWS Lambda repose 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 et 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 de code n'est que de 5 minutes.

Résumé

  • Serverless est un terme qui désigne généralement les 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 ou de la manière dont elles vont les gérer.
  • Une fonction est un programme ou un script qui s'exécute dans AWS Serverless Lambda.
  • Runtime permet des fonctions dans différentes langues qui s'exécutent sur le même environnement d'exécution de base.
  • Une source d'événement est un service AWS, tel qu'Amazon SNS, ou un service personnalisé.
  • Les couches Lambda sont 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 plate-forme 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».
  • Il n'est pas approprié d'utiliser des packages logiciels ou des applications AWS Lambda qui reposent sur l'appel de RPC Windows sous-jacents
  • AWS Lambda est un outil hautement flexible.
  • L'outil AWS Lambda ne convient pas 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.