Présentation d'AWS Lambda - AWS Lambda

Présentation d'AWS Lambda

Lambda est un service de calcul qui vous permet d'exécuter du code sans provisionner ou gérer de serveurs. Lambda exécute votre code sur une infrastructure de calcul haute disponibilité et effectue toutes les tâches d'administration des ressources de calcul, notamment la maintenance des serveurs et du système d'exploitation, le provisionnement de la capacité et la scalabilité automatique, la surveillance du code et la journalisation. 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

Dans le AWS Lambda Developer Guide, nous supposons 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 votre fonction uniquement en cas de besoin et se met automatiquement à l'échelle, qu'il s'agisse de quelques demandes par jour ou de milliers par seconde. Vous payez uniquement le temps de calcul consommé.—Aucuns frais ne vous sont facturés lorsque votre code n'est pas exécuté.

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

  • Créez des déclencheurs de traitement de données pour des services AWS tels que Amazon Simple Storage Service (Amazon S3) et Amazon DynamoDB.

  • Traitez les données en continu 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 Lambdal'environnement d'exécution standard et des ressources fournies par Lambda.

Lorsque vous utilisez Lambda, vous êtes uniquement responsable de votre code. Lambda gère le parc d'instances de calcul qui assure l'équilibre des ressources de mémoire, de CPU, réseau et autres nécessaire pour exécuter votre code. Étant donné que Lambda gère ces ressources, vous ne pouvez pas vous connecter à des instances de calcul ni personnaliser le système d'exploitation sur les exécutions fournies. Lambda effectue des activités opérationnelles et d'administration en votre nom, notamment 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) offre un large éventail de types d'instances EC2 parmi lesquels choisir. 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 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

Utilisez vos outils, flux de travail et dépendances d'images de conteneur préférés pour créer, tester et déployer vos fonctions Lambda.

Signature de code

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

Extensions Lambda

Vous pouvez utiliser les extensions Lambda pour optimiser vos fonctions Lambda. Par exemple, utilisez des extensions pour intégrer plus facilement Lambda à 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 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 à haute concurrence.

Mise en route avec Lambda

Pour travailler efficacement avec Lambda, vous devez avoir de l'expérience et une expertise en codage 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 que IPC, files d'attente, messagerie, notifications et simultanéité

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

  • 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 les rubriques suivantes afin de vous familiariser avec les fondamentaux :

  1. Lisez la présentation du produit Lambda et explorez la page de Lambda démarrage.

  2. Pour créer et tester une fonction Lambda à l'aide de la console Lambda, essayez l'exercice de démarrage basé sur la console. Cet exercice vous explique le modèle de programmation Lambda et d'autres concepts.

  3. Si vous êtes familier avec les flux de travail d'images conteneurs, essayez l'exercice de mise en route pour créer une fonction Lambda définie en tant qu'image de conteneur.

AWS fournit également les ressources suivantes pour en apprendre davantage sur les applications sans serveur et Lambda :

Lambda s'intègre à 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 lorsqu'un objet est créé ou supprimé.

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

  • Utilisez AWS Step Functions pour connecter des fonctions Lambda ensemble 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 :

  • AWS Console de gestion – Fournit une interface Web pour accéder à vos fonctions. Pour plus d'informations, consultez Configuration de fonctions dans la console.

  • AWS Command Line Interface (AWS CLI) – Fournit des commandes pour une large gamme de services AWS, notamment Lambda, qui est pris en charge sur Windows, macOS et Linux. Pour plus d'informations, consultez Utilisation d'AWS Lambda avec l'AWS Command Line Interface.

  • AWS Kits SDK – Fournissent des API propres au langage et gèrent de nombreux détails de connexion, tels que le calcul de la signature, la gestion de la nouvelle tentative de demande et la gestion des erreurs. Pour plus d'informations, consultez AWSKits SDK.

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

  • Modèle d'application sans serveur AWS (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 AWS SAM.

Tarification de Lambda

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