View a markdown version of this page

AWS Fonctions Web Lambda - AWS Lambda

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

AWS Fonctions Web Lambda

Avec AWS Lambda Web Functions, vous pouvez exécuter des applications Web et des backends d'API en tant que serveurs HTTP sans serveur. Votre code écoute sur un port réseau et gère directement les demandes. Vous pouvez utiliser des frameworks Node.js Web familiers tels que ExpressHono, ou React Router sans Lambda-specific adaptateurs ou wrappers. Vous développez et exécutez votre serveur localement comme n'importe quelle autre application Node.js Web.

Vous déployez votre code sous forme de fichier .zip. Lambda crée un point de terminaison HTTPS, gère les environnements d'exécution et adapte votre application en fonction du trafic, y compris jusqu'à zéro lorsqu'elle est inactive. Pour réduire le temps de latence pour les utilisateurs répartis dans le monde entier, vous pouvez effectuer un déploiement sur plusieurs terminaux Régions AWS derrière un seul point de terminaison. Lambda utilise un routage basé sur la latence pour envoyer chaque demande à l'une de ces régions. Vous payez pour les demandes, le temps processeur actif, la mémoire consommée pendant la durée de vie de chaque environnement d'exécution et le transfert de données.

Quand utiliser les fonctions Web

Utilisez les fonctions Web pour les charges de travail qui reçoivent et répondent directement au trafic HTTP. Cas d’utilisation courants :

  • Applications Web : déployez des applications frontales ou complètes qui fournissent du HTML, des ressources et des itinéraires d'API à partir d'un seul déploiement.

  • API REST et GraphQL : créez des backends d'API qui répondent à des volumes de requêtes élevés.

  • Microservices : exécutez des services HTTP qui évoluent indépendamment du trafic, y compris jusqu'à zéro en cas d'inactivité.

  • Server-side rendu (SSR) — Servez les pages qui sont affichées sur le serveur au moment de la demande plutôt que prédéfinies. Une fonction Web exécute directement le serveur de production de votre framework. Il gère les requêtes SSR, le streaming et les itinéraires d'API sans couche d'hébergement séparée. Il évolue également en fonction du trafic. Cela convient aux applications qui affichent un contenu personnalisé ou qui change fréquemment à chaque demande.

  • Réponses en streaming : diffusez les résultats vers le client au fur et à mesure qu'ils sont produits, tels que les réponses provenant d'un grand modèle de langage.

Pour le traitement piloté par les événements, tel que la gestion des messages de file d'attente ou des téléchargements de fichiers, utilisez plutôt les fonctions d'événement Lambda.

Note

AWS Lambda Les fonctions Web ne prennent actuellement en charge que les Node.js environnements d'exécution. Si vous utilisezJava, Python.NET, ou un autre langage, reportez-vous Création de votre première fonction Lambda à AWS Lambda Event Functions ou AWS Lambda MicroVM à Lambda MicroVMS.

Fonctionnement des fonctions Web

Une fonction Web contient des révisions et des points de terminaison. Une révision est un instantané immuable de votre code et de votre configuration. Un point de terminaison achemine les requêtes HTTP vers une ou deux révisions. Lambda exécute votre serveur dans des environnements d'exécution qui gèrent chacun plusieurs requêtes simultanées. Lambda adapte ces environnements d'exécution en fonction du trafic. Pour plus de détails, consultez Concepts de base.

Principaux avantages

Les fonctions Web offrent les avantages suivants pour les applications Web et les backends d'API :

  • Expérience de développement Web standard : déployez Node.js des applications standard qui écoutent sur un port. Vous utilisez des frameworks Web familiers et votre structure d'application normale.

  • Dimensionnement adaptatif : chaque environnement d'exécution répond à plusieurs demandes simultanées, comme un serveur Web standard. Par conséquent, un nombre réduit d'environnements d'exécution gèrent davantage de trafic. Les environnements d'exécution existants peuvent absorber de légères augmentations de trafic, de sorte que moins de demandes attendent le démarrage d'un nouvel environnement d'exécution.

  • Usage-based facturation : vous payez pour les demandes, le temps processeur que votre application et votre environnement d'exécution consomment activement, la mémoire pendant la durée de vie de chaque environnement d'exécution et le transfert de données. Une requête en attente d'une requête de base de données ou d'un appel d'API externe consomme peu de CPU pendant son attente. Cependant, la mémoire continue de s'accumuler tant que l'environnement d'exécution existe, y compris le temps d'inactivité entre les demandes.

  • Streaming des réponses : diffusez les réponses aux clients au fur et à mesure que votre application les produit, sans configuration supplémentaire.

  • Échelle jusqu'à zéro : Lambda supprime les environnements d'exécution inactifs lorsqu'il n'y a pas de trafic et en crée de nouveaux lorsque les demandes arrivent. Une demande peut attendre l'initialisation d'un environnement d'exécution. Pour plus de détails sur le fonctionnement de la mise à l'échelle et de la régulation, voir. Comportement de dimensionnement pour les fonctions Web Lambda

  • Built-in Point de terminaison HTTPS : chaque point de terminaison fournit un domaine HTTPS avec TLS. Vous choisissez l'authentification IAM ou l'authentification gérée par application pour chaque point de terminaison. Pour plus de détails, consultez Contrôle d'accès aux terminaux Lambda Web Function. Pour utiliser un domaine ou une AWS WAF protection personnalisés, placez une CloudFront distribution Amazon devant le point de terminaison.

  • Endpoint-level contrôles du trafic — Définissez une limite de débit de demandes (demandes par seconde) sur chaque point de terminaison HTTPS, que Lambda applique dans chaque région, ainsi qu'un nombre maximum d'environnements d'exécution (maxEnvironments), également appliqués dans chaque région. Ensemble, ils vous permettent de limiter le trafic accepté par un point de terminaison. Ils vous permettent également de limiter la charge que le point de terminaison transmet aux dépendances en aval, telles que les bases de données et les API externes. Pour plus d'informations, consultez Comportement de dimensionnement pour les fonctions Web Lambda.