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 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 qui héberge et exécute le code backend vous oblige à dimensionner, provisionner et faire évoluer un ensemble de serveurs, à gérer les mises à jour du système d’exploitation, à appliquer des correctifs de sécurité et à surveiller toute cette infrastructure pour en vérifier les performances 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 ?

AWSLambda 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 sans aucune 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
  • Go
  • PowerShell
  • Ruby

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’une seule condition préalable : vous devez disposer d’un compte sur AWS à partir duquel vous pouvez accéder à la console de gestion AWS.

Vous pouvez appeler Lambda est FaaS (Function-as-a-Service) par AWS.

Caractéristiques de 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 comme AWS S3, CloudWatch, DynamoDB, API Gateway, Kinesis, CodeCommit, et bien d’autres pour déclencher un événement.
  • 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 pour les deux services exécutant le code et 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.

aws lambda pricing - geekflare

Comment fonctionne AWS Lambda ?

aws lambda working - geekflare

  • 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. Il peut s’agir, par exemple, 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, il choisira un type d’instance qui a plus de puissance de traitement et de RAM, ou bien si votre code lambda ne s’exécute que pendant deux secondes, il sélectionnera 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

Pour 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.

lambda - geekflare

  • La fenêtre de la fonction apparaîtra, cliquez sur Créer une fonction.

create function - geekflare

  • 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.

author from scratch - geekflare

  • 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.

rollingdice - geekflare

  • Vous obtiendrez un message de succès indiquant que la fonction a été créée. Cliquez sur la fenêtre du Designer pour la réduire.

designer window - geekflare

  • 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.

lambda function code - geekflare

  • Il s’agit d’un code simple qui prend 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 = 'Le résultat du lancer de dé est : ' randomNum ;
return out ;
} ;
  • Cliquez maintenant 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.

test event

  • Cliquez ensuite sur Enregistrer, puis sur Tester.

Dans le résultat de l’exécution, vous verrez la sortie de la fonction logique que nous venons d’écrire. Il s’agit de – Le résultat du lancer de dé est 2.

test

  • Faites défiler vers le haut et cliquez sur les résultats d’exécution détaillés 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 avec la sortie du journal.

execution result

  • Cliquez sur l’onglet surveillance pour visualiser les journaux de surveillance du nuage et les performances de la fonction lambda sur une période définie.

cloudwatch monitoring

  • Si vous entrez dans les journaux créés par CloudWatch, vous pouvez examiner les détails de ce qui s’est passé lors de l’exécution de la fonction lambda surveillée par CloudWatch.

view cloudwatch logs - geekflare

Conclusion

Laprise en main de Lambda est vraiment très simple. Si votre application métier nécessite d’exécuter du code backend, vous pouvez envisager d’utiliser une plateforme sans serveur comme AWS Lambda.