Qu'est-ce que AWS Lambda ? - AWS Lambda

Qu'est-ce que AWS Lambda ?

Lambda est un service informatique qui vous permet d'exécuter du code sans devoir approvisionner ou gérer des serveurs. Lambda exécute le code sur une infrastructure informatique à haute disponibilité et effectue toute l'administration des ressources informatiques, y compris la maintenance des serveurs et du système d'exploitation, l'allocation et la mise à l'échelle automatique des capacités, ainsi que la surveillance et la journalisation du code. Avec Lambda, vous pouvez exécuter du code pour pratiquement n'importe quel type d'application ou de service backend. Il vous suffit de fournir votre code dans l'un des langages pris en charge par Lambda.

Note

Le Manuel du développeur AWS Lambda part du principe que vous avez de l'expérience dans le codage, la compilation et le déploiement de programmes à l'aide de l'un des langages pris en charge.

Vous organisez votre code en fonctions Lambda. Lambda exécute le code uniquement si nécessaire et adapte son l'échelle automatiquement, qu'il s'agisse de traiter quelques requêtes quotidiennes ou des milliers de requêtes par seconde. Vous payez uniquement le temps de calcul que vous utilisez. Vous n'exposez aucuns frais quand votre code n'est pas exécuté.

Vous pouvez appeler vos fonctions Lambda à l'aide de l'API Lambda, ou Lambda peut les exécuter en réponse à des évènements d'autres services AWS. Par exemple, vous pouvez utiliser Lambda pour :

  • Créer des déclencheurs de traitement de données pour des service AWS tels qu'Amazon Simple Storage Service (Amazon S3) et Amazon DynamoDB.

  • Traiter des données de streaming stockées dans Amazon Kinesis.

  • Créez votre propre backend qui fonctionne suivant l'échelle, les performances et la sécurité d'AWS.

Lambda est un service à haute disponibilité. Pour plus d'informations, consultez le contrat de niveau de service (SLA) AWS Lambda.

Dans quels cas est-il conseillé d'utiliser Lambda ?

Lambda est un service de calcul qui répond parfaitement aux besoins de nombreux scénarios d'application, à condition que vous soyez en mesure d'exécuter le code de votre application à l'aide de l'environnement d'exécution standard et au sein des ressources fournies par Lambda.

Lorsque vous utilisez Lambda, vous n'êtes responsable que de votre code. Lambda gère le parc d'instances de calcul qui assure l'équilibre des ressources de mémoire, de CPU, de réseau et autres nécessaire pour exécuter votre code. Étant donné que Lambda gère ces ressources, vous ne pouvez ni vous connecter à des instances de calcul, ni personnaliser le système d'exploitation sur les runtimes fournis. Lambda accomplit des activités opérationnelles et d'administration en votre nom, dont la gestion de la capacité, la surveillance et la journalisation de vos fonctions Lambda.

Si vous souhaitez de gérer vos propres ressources de calcul, AWS propose également d'autres services à ces fins. Exemples :

  • Amazon Elastic Compute Cloud (Amazon EC2) propose un vaste éventail de types d'instance EC2. Il vous permet de personnaliser les systèmes d'exploitation, les paramètres réseau et de sécurité, ainsi que l'ensemble de la pile de logiciels. Vous gérez le provisionnement des capacités, la surveillance de l'état de santé et des performances du parc, ainsi que l'utilisation des zones de disponibilité pour la tolérance aux pannes.

  • AWS Elastic Beanstalk vous permet de déployer et de mettre à l'échelle des applications sur Amazon EC2. Vous conservez la propriété et le contrôle total sur les instances EC2 sous-jacentes.

Fonctionnalités de Lambda

Les fonctions clés suivantes vous aident à développer des applications Lambda évolutives, sécurisées et facilement extensibles :

Contrôles de simultanéité et de mise à l'échelle

Lescontrôles de simultanéité et de mise à l'échelle (tels que les limites de simultanéité et la simultanéité provisionnée) vous donnent un contrôle précis sur la mise à l'échelle et la réactivité de vos applications de production.

Fonctions définies en tant qu'images de conteneur

Servez-vous de vos outils, flux de travail et dépendances d'images conteneurs favoris pour créer, tester et déployer vos fonctions Lambda.

Signature de code

La signature de code pour Lambda fournit des contrôles de confiance et d'intégrité qui vous permettent de vérifier que seul du code intact publié par des développeurs approuvés est déployé dans vos fonctions Lambda.

Extensions Lambda

Vous pouvez utiliser des extensions Lambda pour augmenter vos fonctions Lambda. Par exemple, utilisez des extensions pour intégrer plus facilement Lambda avec vos outils préférés à des fins de surveillance, d'observabilité, de sécurité et de gouvernance.

Plans de fonction

Un plan de fonction fournit un exemple de code qui montre comment utiliser Lambda avec d'autres services AWS ou des applications tierces. Les plans incluent des exemples de code et des préréglages de configuration de fonction pour les environnements d’exécution Node.js et Python.

Accès aux bases de données

Un proxy de base de données gère un groupe de connexions de base de données et relaie les demandes provenant d'une fonction. Cela permet à une fonction d'atteindre des niveaux de simultanéité élevés sans épuiser les connexions de base de données.

Accès aux systèmes de fichiers

Vous pouvez configurer une fonction pour monter un système de fichiers Amazon Elastic File System (Amazon EFS) dans un répertoire local. Avec Amazon EFS, votre code de fonction peut accéder aux ressources partagées et les modifier en toute sécurité et avec une haute simultanéité.

Démarrage avec Lambda

Pour utiliser efficacement Lambda, vous devez avoir de l'expérience en matière de codage et d'une expertise dans les domaines suivants :

  • Linux OS et commandes, ainsi que des concepts tels que les processus, les threads et les autorisations de fichiers

  • Concepts cloud et de réseaux IP (pour les réseaux publics et privés)

  • Concepts d'informatique distribuée tels que HTML en tant qu'IPC, files d'attente, messagerie, notifications et simultanéité

  • Bonne connaissance des services et concepts de sécurité : AWS Identity and Access Management (IAM) et principes de contrôle d'accès, AWS Key Management Service (AWS KMS) et infrastructure à clé publique.

  • Bonne connaissance des services clés qui interagissent avec Lambda : Amazon API Gateway, Amazon S3, Amazon Simple Queue Service (Amazon SQS) et DynamoDB.

  • Configuration des instances EC2 avec Linux.

Si vous utilisez Lambda pour la première fois, nous vous recommandons de commencer par consulter les rubriques suivantes afin de vous familiariser avec les fondamentaux :

  1. Lisez la présentation du produit Lambda et explorez la page Démarrage avec Lambda.

  2. Pour créer et tester une fonction Lambda à l'aide de la console Lambda, essayez d'effectuer l'exercice de mise en route basée sur la console. Cet exercice illustre le modèle de programmation Lambda et d'autres concepts.

  3. Si les flux de travail d'image conteneur vous sont familiers, essayez l'exercice de mise en route pour créer une fonction Lambda définie en tant qu'image conteneur.

AWS fournit également les ressources suivantes pour l'apprentissage des applications sans serveur et de Lambda :

Lambda s'intègre avec d'autres services AWS pour appeler des fonctions selon les évènements que vous spécifiez. Exemples :

  • Utilisez API Gateway pour fournir une passerelle sécurisée et évolutive pour les API web qui acheminent les requêtes HTTP vers les fonctions Lambda.

  • Pour les services qui génèrent une file d'attente ou un flux de données (par exemple, DynamoDB et Kinesis), Lambda interroge la file d'attente ou le flux de données du service, et appelle votre fonction pour traiter les données reçues.

  • Définissez des évènements Amazon S3 qui appellent une fonction Lambda pour traiter des objets Amazon S3, par exemple, lors de la création ou de la suppression d'un objet.

  • Utilisez une fonction Lambda pour traiter des messages Amazon SQS ou des notifications Amazon Simple Notification Service (Amazon SNS).

  • Utilisez AWS Step Functions pour interconnecter des fonctions Lambda dans des flux de travail sans serveur appelés machines d'état.

Accès à Lambda

Vous pouvez créer, appeler et gérer vos fonctions Lambda à l'aide de l'une des interfaces suivantes :

  • Console de gestion AWS – Fournit une interface web pour accéder à vos fonctions. Pour plus d'informations, consultez Console Lambda.

  • AWS Command Line Interface (AWS CLI) – Fournit des commandes pour un vaste ensemble de services AWS, dont Lambda, pris en charge sur Windows, macOS et Linux. Pour plus d'informations, consultez Utilisation de Lambda avec leAWS CLI.

  • Kits SDK AWS – Fournissent des API spécifiques du langage et gèrent de nombreux détails de la connexion, tels que le calcul de signature, la gestion des nouvelles tentatives de demande et la gestion des erreurs. Pour plus d'informations, consultez Kits AWS SDK.

  • AWS CloudFormation – Permet de créer des modèles qui définissent vos applications Lambda. Pour plus d'informations, consultez AWS LambdaApplications . AWS CloudFormation prend également en charge AWS Cloud Development Kit (CDK).

  • AWS Serverless Application Model (AWS SAM) – Fournit des modèles et une interface de ligne de commande pour configurer et gérer les applications AWS sans serveur. Pour plus d'informations, consultez CLI SAM.

Tarification pour Lambda

Il n'y a pas de frais supplémentaires pour la création de fonctions Lambda. L'exécution d'une fonction et le transfert de données entre Lambda et d'autres services AWS entraînent des frais. Certaines fonctions Lambda facultatives (telles que la simultanéité approvisionnée) entraînent également des frais. Pour plus d'informations, consultez Tarification AWS Lambda.