Configuration de la simultanéité réservée - AWS Lambda

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

Dans Lambda, la simultanéité est le nombre de demandes que votre fonction peut traiter en même temps. Il existe deux types de contrôles de la simultanéité disponibles :

  • Simultanéité réservée – La simultanéité réservée garantit le nombre maximum d’instances simultanées pour la fonction. Lorsqu’une fonction dispose de la simultanéité réservée, aucune autre fonction ne peut utiliser cette simultanéité. Il n’y a pas de frais pour la configuration de la simultanéité réservée pour une fonction.

  • Simultanéité approvisionnée – La simultanéité approvisionnée initialise un nombre demandé d’environnements d’exécution de façon à ce que ceux-ci soient prêts à répondre immédiatement aux appels de votre fonction. Notez que la configuration de la simultanéité provisionnée entraîne des frais sur votre compte AWS.

Cette rubrique explique comment gérer et configurer la simultanéité réservée. Si vous souhaitez réduire la latence de vos fonctions, utilisez la simultanéité provisionnée.

La simultanéité est le nombre de demandes auxquelles votre fonction répond à un moment donné. Lors de l’appel de votre fonction, Lambda alloue une instance de celle-ci au traitement de l’événement. Lorsque le code de la fonction a fini de s’exécuter, il peut gérer une autre demande. Si la fonction est appelée à nouveau alors qu’une demande est toujours en cours de traitement, une autre instance est allouée, ce qui augmente la simultanéité de la fonction. La simultanéité totale pour toutes les fonctions de votre compte est soumise à un quota par région.

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

Pour gérer les paramètres de simultanéité réservée pour une fonction, utilisez la console Lambda.

Réserver la simultanéité pour une fonction
  1. Ouvrez la page Functions (Fonctions) de la console Lambda.

  2. Choisissez une fonction.

  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é). Saisissez la quantité de simultanéité à réserver pour la fonction.

  6. Choisissez Enregistrer.

Vous pouvez réserver jusqu'à la valeur affichée Unreserved account concurrency (Simultanéité de compte non réservée), moins 100 pour les fonctions qui n'ont pas de simultanéité réservée. Pour limiter une fonction, définissez la simultanéité réservée à zéro. Cela empêche tout événement d’être traité jusqu’à ce que vous supprimiez la limite.

L’exemple suivant montre deux fonctions avec des pools de simultanéité réservée, ainsi que le pool de simultanéité non réservée utilisé par d’autres fonctions. Des erreurs de limitation se produisent lorsque toute la simultanéité d’un pool est en cours d’utilisation.


        Simultanéité réservée allouée à deux fonctions.
Légende
  • Simultanéité de la fonction

  • Simultanéité réservée

  • Simultanéité non réservée

  • Limitation

Les effets de la réservation de la simultanéité sont les suivants.

  • D’autres fonctions ne peuvent pas empêcher la mise à l’échelle de la fonction – Toutes les fonctions du compte dans la même région sans simultanéité réservée partagent le groupe de simultanéité non réservée. Sans simultanéité réservée, d’autres fonctions peuvent utiliser toute la simultanéité disponible. Cela empêche l’évolution de votre fonction si nécessaire.

  • La mise à l’échelle de votre fonction ne peut pas être hors de contrôle – La simultanéité réservée empêche également la fonction d’utiliser la simultanéité du groupe non réservé, ce qui a pour effet de plafonner sa simultanéité maximum. Vous pouvez réserver de la simultanéité pour empêcher votre fonction d’utiliser toute la simultanéité disponible dans la région, ou de surcharger les ressources en aval.

Le fait de définir la simultanéité par fonction peut avoir des conséquences sur le groupe de simultanéité disponible pour d’autres fonctions. Pour éviter les problèmes, limitez le nombre d'utilisateurs pouvant faire appel aux opérations d'API PutFunctionConcurrency et DeleteFunctionConcurrency.

Configuration de la simultanéité avec l’API Lambda

Pour gérer les paramètres de simultanéité avec la AWS CLI ou le kit SDK AWS, utilisez les opérations d’API suivantes.

Pour configurer la simultanéité réservée avec l’AWS CLI, utilisez la commande put-function-concurrency. La commande suivante réserve une simultanéité de 100 pour une fonction nommée my-function :

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

Vous devriez voir la sortie suivante :

{ "ReservedConcurrentExecutions": 100 }