Découvrons les principes fondamentaux d'AWS Lambda et comment exécuter une fonction étape par étape.
Introduction
Lorsque vous créez des applications, vous souhaitez qu'elles offrent une excellente expérience à l'utilisateur. Pour que la magie opère, votre application a besoin d'un code backend qui s'exécute en réponse à des événements.
Mais la gestion de l'infrastructure destinée à héberger et à exécuter le code backend exige que vous dimensionniez, approvisionniez et fassiez évoluer un ensemble de serveurs, que vous gériez les mises à jour du système d'exploitation, que vous appliquiez les correctifs de sécurité et que vous moniteur toute cette infrastructure pour la performance et la disponibilité.
Ne serait-il pas agréable de pouvoir se concentrer sur la création d'excellentes applications sans avoir à se préoccuper de leur infrastructure ? C'est là qu'intervient AWS Lambda.

Qu'est-ce que AWS Lambda ?
AWS Lambda est un service de calcul sans serveur qui vous permet d'exécuter votre code sans vous soucier du provisionnement ou de la gestion d'un serveur. Vous pouvez exécuter votre application ou votre service backend à l'aide d'AWS Lambda avec zéro administration. Il suffit de télécharger votre code sur Lambda, et il l'exécutera, même en faisant évoluer l'infrastructure avec une haute disponibilité.
Le code que vous exécutez sur AWS Lambda est appelé fonction lambda. Actuellement, il prend en charge les langages de programmation suivants :
- Java
- Python
- C#
- Node.js
- Aller
- PowerShell
- Rubis
Il fournit également une API d'exécution qui peut être utilisée pour exécuter des fonctions écrites dans d'autres langages de programmation (natifs).
Pour travailler avec AWS Lambda, il n'y a qu'un seul prérequis, vous devez disposer d'un compte sur AWS à partir duquel vous pouvez accéder à la console de gestion AWS.
Vous pouvez appeler Lambda is FaaS (Function-as-a-Service) par AWS.
Fonctionnalités d'AWS Lambda
Vous trouverez ci-dessous quelques-unes des fonctionnalités importantes offertes par AWS Lambda :
- AWS Lambda fait facilement évoluer l'infrastructure sans configuration supplémentaire. Il réduit le travail opérationnel nécessaire.
- Il offre de multiples options telles que AWS S3Pour déclencher un événement, vous pouvez utiliser des outils tels que CloudWatch, DynamoDB, API Gateway, Kinesis, CodeCommit, et bien d'autres encore.
- Vous n'avez pas besoin d'investir au départ. Vous ne payez que pour la mémoire utilisée par la fonction lambda et un coût minimal sur le nombre de requêtes, d'où un bon rapport coût-efficacité.
- AWS Lambda est sécurisé. Il utilise AWS IAM pour définir tous les rôles et les politiques de sécurité.
- Il offre une tolérance aux pannes à la fois pour les services qui exécutent le code et pour la fonction. Vous n'avez pas à vous soucier de l'indisponibilité de l'application.
Prix d'AWS Lambda
La tarification d'AWS Lambda dépend de la durée et de la mémoire utilisée par la fonction lambda que vous avez écrite. Vous pouvez attribuer au maximum 3008 Mo de mémoire à une fonction lambda, par incréments de 64 Mo. Vous trouverez ci-dessous un tableau des prix avec toutes les tranches de mémoire pour 100 millisecondes.
Comment fonctionne AWS Lambda ?
- Tout d'abord, vous créez une fonction et y ajoutez des informations de base, comme le langage de programmation à utiliser dans la fonction.
- Ensuite, vous écrivez votre code sur l'éditeur lambda ou vous le téléchargez dans un langage de programmation pris en charge dans un fichier zip.
- Une fois le code lambda téléchargé, le service s'occupe de la mise à l'échelle de la capacité, des correctifs et de l'administration de l'infrastructure.
- Pour exécuter le code, vous devez déclencher la fonction lambda avec un service AWS externe, qui peut invoquer la fonction lambda. Par exemple, il peut s'agir d'un bucket S3.
- En quelques secondes, lambda sera prêt à déclencher automatiquement votre fonction lorsqu'un événement se produit. AWS Lambda exécute votre code lorsque l'événement déclencheur est appelé. Il provisionne, gère et surveille les serveurs pour vous.
- Si votre fonction nécessite une grande puissance de traitement, elle choisira un type d'instance qui dispose de plus de puissance de traitement et de mémoire vive, ou bien si votre code lambda ne s'exécute que pendant deux secondes, elle choisira l'instance la plus basse possible, ce qui vous permet d'économiser de l'argent et du temps.
Voilà comment AWS Lambda fonctionne en interne. Laissez-moi vous montrer une démo sur AWS Lambda.
Création d'une fonction AWS Lambda
Dans cet article, je vais créer un jeu très simple en utilisant la fonction lambda dans Node.js. Je vais créer une fonction lambda pour lancer un dé, générer un nombre au hasard entre 1 et 6, et l'imprimer.
- Allez dans la console de gestion AWS, et dans la barre de recherche tapez Lambda, cliquez sur Lambda.
- La fenêtre de la fonction apparaît, cliquez sur Créer une fonction.
- Vous obtiendrez différentes options pour créer une fonction avec leur explication. Puisque je la crée à partir de zéro, je vais sélectionner Author from Scratch.
- Ensuite, vous devez remplir quelques informations nécessaires pour cette fonction lambda. Saisissez le nom de la fonction et sélectionnez la version de Node.js que vous souhaitez utiliser pour cette fonction.
- Vous devez également choisir un rôle d'exécution. Comme je n'ai pas de rôle existant défini dans mon compte AWS, je vais aller de l'avant et sélectionner l'option de création d'un nouveau rôle. Cliquez sur Create function.
- Vous obtiendrez un message de réussite indiquant que l'onction a été créée. Cliquez sur la fenêtre du Designer pour la réduire.
- La fenêtre suivante est celle du code de la fonction.
- Mettez le code mentionné ci-dessous dans l'éditeur. Vous pouvez également télécharger le code à l'aide du fichier zip, mais j'utilise l'éditeur de code interne d'AWS.
- Il s'agit d'un code simple qui ne prend qu'un nombre de 1 à 6 et utilise une fonction mathématique aléatoire pour générer un nombre au hasard et l'imprimer lorsque la fonction est appelée.
exports.handler = async (event) => {
const min = 1;
const max = 6;
const randomNum = Math.floor(Math.random() * (max - min + 1)) + min;
const out = 'Dice throw result is: ' + randomNum;
return out;
};
- Cliquez ensuite sur le bouton Test dans le coin supérieur droit. Vous obtiendrez une fenêtre contextuelle pour configurer un événement de test, entrez un nom d'événement, et cliquez sur configurer.
- Cliquez maintenant sur Enregistrer, puis sur Tester.
Dans le résultat de l'exécution, vous verrez la sortie de la logique de fonction que nous venons d'écrire. Il s'agit de - Le résultat du lancer de dé est 2.
- Faites défiler vers le haut et cliquez sur les résultats détaillés de l'exécution pour obtenir le résumé complet de cette fonction lambda avec le résultat attendu. Des détails tels que l'identifiant de la requête, la durée, la durée facturée, les ressources configurées, etc. sont également disponibles.
- Cliquez sur l'onglet surveillance pour visualiser le nuage surveiller les journaux et les performances des fonctions lambda sur une période définie.
- Si vous consultez les journaux créés par CloudWatch, vous pouvez voir les détails de ce qui s'est passé lors de l'exécution de la fonction lambda, qui a été surveillée par CloudWatch.
Conclusion
Démarrer avec Lambda est très simple. Si votre application commerciale nécessite l'exécution d'un code backend, vous pouvez envisager l'utilisation d'un plateforme sans serveur comme AWS Lambda.