View a markdown version of this page

Configuration de la simultanéité réservée pour une fonction événementielle - 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.

Configuration de la simultanéité réservée pour une fonction événementielle

Dans Lambda, la simultanéité est le nombre de demandes en cours de traitement par votre fonction d'événement. Il existe deux types de contrôles de la simultanéité disponibles :

  • Concurrence réservée — Cela définit à la fois le nombre maximum et minimum d'instances simultanées allouées à votre fonction événementielle. Lorsqu'une fonction événementielle a réservé la simultanéité, aucune autre fonction événementielle ne peut utiliser cette simultanéité. La simultanéité réservée est utile pour garantir que vos fonctions les plus critiques disposent toujours d’une simultanéité suffisante pour traiter les requêtes entrantes. En outre, la simultanéité réservée peut être utilisée pour limiter la simultanéité afin d’éviter de surcharger les ressources en aval, comme les connexions aux bases de données. La simultanéité réservée agit à la fois comme limite inférieure et supérieure : elle réserve la capacité spécifiée exclusivement à votre fonction tout en l’empêchant de dépasser cette limite. Il n’y a pas de frais supplémentaires pour la configuration de la simultanéité réservée pour une fonction.

  • Concurrence provisionnée : il s'agit du nombre d'environnements d'exécution préinitialisés alloués à votre fonction événementielle. Ces environnements d’exécution sont prêts à répondre immédiatement aux demandes de fonctions entrantes. La simultanéité allouée est utile pour réduire les latences de démarrage à froid pour les fonctions et est conçue pour rendre les fonctions disponibles avec des temps de réponse de l’ordre de quelques dixaines de millisecondes. En général, ce sont les charges de travail interactives qui tirent le meilleur parti de cette fonctionnalité. Il s’agit des applications dont les utilisateurs lancent des requêtes, telles que les applications Web et mobiles, et qui sont les plus sensibles à la latence. Les charges de travail asynchrones, telles que les pipelines de traitement des données, sont souvent moins sensibles à la latence et ne nécessitent donc généralement pas de simultanéité allouée. La configuration de la simultanéité provisionnée entraîne des frais supplémentaires pour votre. Compte AWS

Cette rubrique explique comment gérer et configurer la simultanéité réservée. Pour une présentation conceptuelle de ces deux types de contrôles de simultanéité, consultez Simultanéité réservée et simultanéité provisionnée. Pour plus d’informations sur la configuration de la simultanéité provisionnée, consultez Configuration de la simultanéité provisionnée pour une fonction événementielle.

Note

Les fonctions d'événement Lambda liées à un mappage de sources d'événements Amazon MQ ont une simultanéité maximale par défaut. Pour Apache Active MQ, le nombre maximum d’instances simultanées est de 5. Pour Rabbit MQ, le nombre maximum d’instances simultanées est de 1. La définition de la simultanéité réservée ou provisionnée pour votre fonction événementielle ne modifie pas ces limites. Pour demander une augmentation de la simultanéité maximale par défaut lors de l’utilisation d’Amazon MQ, contactez Support.

Configuration de la simultanéité réservée

Vous pouvez configurer les paramètres de simultanéité réservés pour une fonction d'événement Lambda à l'aide de la console Lambda ou de l'API Lambda.

Pour réserver la simultanéité d'une fonction événementielle (console)
  1. Ouvrez la page Event Functions de la console Lambda.

  2. Choisissez la fonction d'événement pour laquelle vous souhaitez réserver la simultanéité.

  3. Sélectionnez Configuration, puis Concurrency (Simultanéité).

  4. Sous Concurrency (Simultanéité), choisissez Edit (Modifier).

  5. Choisissez Reserve concurrency (Réserver la simultanéité). Entrez le montant de simultanéité à réserver pour la fonction d'événement.

  6. Cliquez sur Enregistrer.

Vous pouvez réserver jusqu’à la valeur de la simultanéité du compte non réservé moins 100. Les 100 unités de simultanéité restantes concernent les fonctions événementielles qui n'utilisent pas la simultanéité réservée. Par exemple, si la limite de simultanéité de votre compte est de 1 000, vous ne pouvez pas réserver les 1 000 unités de simultanéité à une seule fonction événementielle.

Une erreur se produit si vous essayez de réserver une simultanéité trop importante.

La réservation de la simultanéité pour une fonction d'événement a un impact sur le pool de simultanéité disponible pour les autres fonctions d'événement. Par exemple, si vous réservez 100 unités de simultanéité pourfunction-a, les autres fonctions événementielles de votre compte doivent partager les 900 unités de simultanéité restantes, même si les 100 unités de simultanéité réservées function-a ne sont pas utilisées.

Pour limiter intentionnellement une fonction événementielle, définissez sa simultanéité réservée sur 0. Cela empêche votre fonction événementielle de traiter les événements jusqu'à ce que vous supprimiez la limite.

Pour configurer la simultanéité réservée avec l’API Lambda, utilisez les opérations d’API suivantes.

Par exemple, pour configurer la simultanéité réservée avec la AWS Command Line Interface (CLI), utilisez la put-function-concurrency commande. La commande suivante réserve 100 unités de simultanéité pour une fonction d'événement nommée my-function :

aws lambda put-function-concurrency --function-name my-function \ --reserved-concurrent-executions 100

Vous devriez voir une sortie semblable à la suivante :

{ "ReservedConcurrentExecutions": 100 }

Estimation précise de la simultanéité réservée requise pour une fonction événementielle

Si votre fonction événementielle gère actuellement du trafic, vous pouvez facilement consulter ses indicateurs de simultanéité à l'aide de CloudWatch métriques. Plus précisément, la ConcurrentExecutions métrique vous indique le nombre d'invocations simultanées pour chaque fonction événementielle de votre compte.

Graphique illustrant la simultanéité d'une fonction événementielle au fil du temps.

Le graphique précédent suggère que cette fonction d'événement répond en moyenne à 5 à 10 demandes simultanées à un moment donné, avec un pic de 20 demandes par jour normal. Supposons qu'il existe de nombreuses autres fonctions événementielles dans votre compte. Si cette fonction d'événement est essentielle à votre application et que vous ne souhaitez supprimer aucune demande, utilisez un nombre supérieur ou égal à 20 comme paramètre de simultanéité réservé.

Par ailleurs, rappelez-vous que vous pouvez également calculer la simultanéité à l’aide de la formule suivante :

Concurrency = (average requests per second) * (average request duration in seconds)

En multipliant le nombre moyen de demandes par seconde par la durée moyenne des demandes en secondes, vous obtenez une estimation approximative du niveau de simultanéité que vous devez réserver. Vous pouvez estimer les demandes moyennes par seconde à l’aide de la métrique Invocation, et la durée moyenne des demandes en secondes à l’aide de la métrique Duration. Pour plus d’informations, consultez Utilisation de CloudWatch métriques avec Lambda.

Familiarisez-vous avec vos contraintes de débit en amont et en aval. Bien que les fonctions d'événement Lambda s'adaptent parfaitement à la charge, les dépendances en amont et en aval peuvent ne pas avoir les mêmes capacités de débit. Si vous devez limiter l'échelle de votre fonction d'événement, configurez la simultanéité réservée sur votre fonction d'événement.