Une introduction à AWS Lambda pour les débutants

Photo of author

By pierre



Découvrons ensemble les fondamentaux d’AWS Lambda et comment mettre en œuvre une fonction pas à pas.

Introduction

Lors du développement d’applications, l’objectif principal est d’offrir une expérience utilisateur exceptionnelle. Pour cela, votre application a besoin d’un code backend qui réagisse aux événements.

Cependant, la gestion de l’infrastructure pour héberger et exécuter ce code backend implique de dimensionner, provisionner et mettre à l’échelle des serveurs, de gérer les mises à jour du système d’exploitation, d’appliquer des correctifs de sécurité et de surveiller l’ensemble de cette infrastructure pour s’assurer de sa performance et de sa disponibilité.

Ne serait-il pas plus pratique de se concentrer sur la création d’applications performantes sans se soucier de l’infrastructure sous-jacente ? C’est précisément là qu’intervient AWS Lambda.

Qu’est-ce qu’AWS Lambda ?

AWS Lambda est un service de calcul serverless qui vous permet d’exécuter votre code sans avoir à vous soucier de la gestion ou du provisionnement de serveurs. Vous pouvez exécuter votre application ou service backend en utilisant AWS Lambda, sans aucune administration. Il vous suffit de téléverser votre code, et Lambda se chargera de son exécution, et même de la mise à l’échelle de l’infrastructure avec une haute disponibilité.

Le code que vous exécutez sur AWS Lambda est appelé une fonction lambda. Actuellement, il prend en charge les langages de programmation suivants :

  • Java
  • Python
  • C#
  • Node.js
  • Go
  • PowerShell
  • Ruby

Il offre é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 utiliser AWS Lambda, un seul prérequis est nécessaire : avoir un compte AWS à partir duquel vous pouvez accéder à la console de gestion AWS.

AWS qualifie Lambda de FaaS (Function-as-a-Service).

Fonctionnalités d’AWS Lambda

Voici quelques-unes des fonctionnalités importantes offertes par AWS Lambda :

  • AWS Lambda met facilement à l’échelle l’infrastructure sans aucune configuration supplémentaire, réduisant ainsi le travail opérationnel.
  • Il propose de nombreuses options pour déclencher un événement, comme AWS S3, CloudWatch, DynamoDB, API Gateway, Kinesis, CodeCommit, et bien d’autres.
  • 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 minime par nombre de requêtes, ce qui le rend rentable.
  • AWS Lambda est sécurisé. Il utilise AWS IAM pour définir tous les rôles et politiques de sécurité.
  • Il assure une tolérance aux pannes pour les services exécutant le code et la fonction. Vous n’avez pas à vous inquiéter d’une éventuelle interruption du service.

Tarification d’AWS Lambda

La tarification d’AWS Lambda est basée sur la durée et la mémoire utilisées par la fonction lambda que vous avez écrite. La mémoire maximale que vous pouvez allouer est de 3008 Mo par incréments de 64 Mo. Vous trouverez ci-dessous un tableau des prix pour différentes allocations de mémoire pendant 100 millisecondes.

Comment fonctionne AWS Lambda ?

  • Tout d’abord, vous créez une fonction et vous ajoutez des informations de base, comme le langage de programmation à utiliser.
  • Ensuite, vous écrivez votre code dans l’éditeur lambda ou le téléchargez dans un fichier ZIP, dans un langage de programmation pris en charge.
  • Une fois le code lambda téléchargé, le service gère toute la mise à l’échelle de la capacité, les correctifs et l’administration de l’infrastructure.
  • Pour exécuter le code, vous devez déclencher la fonction lambda avec un service AWS externe. Par exemple, cela peut être un bucket S3.
  • En quelques secondes, Lambda est 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 beaucoup de puissance de traitement, elle choisira un type d’instance avec plus de puissance et de RAM. Si votre code ne s’exécute que pendant deux secondes, elle sélectionnera l’instance la plus petite possible, ce qui vous fera gagner du temps et de l’argent.

C’est ainsi qu’AWS Lambda fonctionne en interne. Je vais vous montrer une démo avec AWS Lambda.

Création d’une fonction AWS Lambda

Je vais créer un jeu très simple utilisant une fonction Lambda en Node.js pour cet article. Je vais créer une fonction lambda qui simule un lancer de dé, génère un nombre aléatoire entre 1 et 6 et l’affiche.

  • Accédez à la console de gestion AWS et, dans la barre de recherche, tapez Lambda, puis cliquez sur Lambda.

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

  • Plusieurs options de création de fonction vous sont proposées avec une explication. Puisque je la crée de zéro, je vais sélectionner « Créer à partir de zéro ».

  • Ensuite, vous devez renseigner certaines informations nécessaires pour cette fonction lambda. Entrez le nom de la fonction et sélectionnez la version de Node.js que vous souhaitez utiliser.
  • Vous devez également choisir un rôle d’exécution. Comme je n’ai pas de rôle existant dans mon compte AWS, je vais continuer et sélectionner l’option « Créer un nouveau rôle ». Cliquez sur « Créer une fonction ».

  • Vous recevrez un message indiquant que la fonction a été créée. Cliquez sur la fenêtre « Designer » pour la réduire.

  • Ensuite, la fenêtre « Code de fonction » apparaît.
  • Copiez le code mentionné ci-dessous dans l’éditeur. Vous pouvez également télécharger le code dans un fichier ZIP, mais j’utilise l’éditeur de code AWS interne.

  • Il s’agit d’un code simple qui prend des nombres de 1 à 6 et utilise une fonction mathématique aléatoire pour générer un nombre au hasard et l’afficher 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 « Tester » dans le coin supérieur droit. Une fenêtre contextuelle apparaîtra 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 d’exécution, vous verrez la sortie de la logique de fonction que nous venons d’écrire : « Le résultat du lancer de dé est 2 ».

  • 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 la sortie attendue. Des informations telles que l’identifiant de la demande, la durée, la durée facturée, les ressources configurées, etc., ainsi que la sortie du journal, sont également disponibles.

  • Cliquez sur l’onglet « Surveillance » pour visualiser les journaux de surveillance cloud et les performances de la fonction lambda sur une période donnée.

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

Conclusion

Se lancer avec Lambda est vraiment simple. Si votre application métier nécessite d’exécuter du code backend, vous pouvez envisager d’utiliser une plateforme serverless comme AWS Lambda.

Avez-vous apprécié cet article ? N’hésitez pas à le partager !