Configuration du comportement de mise à l’échelle pour les mappages des sources d’événements SQS - 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 du comportement de mise à l’échelle pour les mappages des sources d’événements SQS

Vous pouvez contrôler le comportement de dimensionnement de vos mappages de sources d'événements Amazon SQS via des paramètres de simultanéité maximale ou en activant le mode provisionné. Ces options s'excluent mutuellement.

Par défaut, Lambda adapte automatiquement les sondeurs d'événements en fonction du volume des messages. Lorsque vous activez le mode provisionné, vous allouez un nombre minimum et maximum de ressources de sondage dédiées qui restent prêtes à gérer les modèles de trafic attendus. Cela vous permet d'optimiser les performances de votre mappage des sources d'événements de deux manières :

  • Mode standard (par défaut) : Lambda gère automatiquement le dimensionnement, en commençant par un petit nombre de sondeurs, puis en augmentant ou en diminuant en fonction de la charge de travail.

  • Mode provisionné : vous configurez des ressources d'interrogation dédiées avec des limites minimales et maximales, ce qui permet une mise à l'échelle 3 fois plus rapide et une capacité de traitement jusqu'à 16 fois supérieure.

Pour les files d’attente standard, Lambda utilise une interrogation longue pour interroger une file d’attente jusqu’à ce qu’elle devienne active. Lorsque les messages sont disponibles, Lambda commence à traiter cinq lots à la fois avec cinq invocations simultanées de votre fonction. Si les messages sont toujours disponibles, Lambda augmente le nombre de processus lisant des lots de 300 appels simultanés supplémentaires par minute. Le nombre maximum d'appels qu'un mappage de source d'événement peut traiter simultanément est de 1 250. Lorsque le trafic est faible, Lambda réduit le traitement à cinq appels simultanés et peut l'optimiser jusqu'à deux appels simultanés afin de réduire les appels Amazon SQS et les coûts correspondants. Toutefois, cette optimisation n’est pas disponible lorsque vous activez le paramètre de simultanéité maximale.

Pour les files d’attente FIFO, Lambda envoie les messages à votre fonction dans l’ordre de leur réception. Lorsque vous envoyez un message à une file d’attente FIFO, vous spécifiez un ID de groupe de messages. Amazon SQS veille à ce que les messages du même groupe soient livrés à Lambda dans l’ordre. Lorsque Lambda lit vos messages par lots, chaque lot peut contenir des messages provenant de plusieurs groupes de messages, mais l’ordre des messages est conservé. Si la fonction renvoie une erreur, toutes les nouvelles tentatives sont effectuées sur les messages concernés avant que Lambda reçoive des messages supplémentaires du même groupe.

En mode provisionné, chaque sondeur d'événements peut gérer jusqu'à 1 % MB/sec du débit, jusqu'à 10 appels simultanés ou jusqu'à 10 appels d'API d'interrogation Amazon SQS par seconde. Lambda adapte le nombre d'interrogateurs d'événements entre le minimum et le maximum configurés, en ajoutant rapidement jusqu'à 1 000 appels simultanés par minute afin de fournir un traitement cohérent et à faible latence de vos événements Amazon SQS. L’utilisation du mode alloué génère des coûts supplémentaires. Pour connaître les tarifs détaillés, consultez AWS Lambda les tarifs. Chaque sondeur d'événements utilise de longs sondages dans votre file d'attente SQS, avec jusqu'à 10 sondages par seconde, ce qui entraîne des coûts liés aux demandes d'API SQS. Consultez la tarification d'Amazon SQS pour plus de détails. Vous pouvez contrôler la mise à l'échelle et la simultanéité par le biais de ces paramètres minimaux et maximaux d'un sondeur d'événements, plutôt que d'utiliser le paramètre de simultanéité maximale, car ces options ne peuvent pas être utilisées conjointement.

Note

Vous ne pouvez pas utiliser le paramètre de simultanéité maximale et le mode provisionné en même temps. Lorsque le mode provisionné est activé, vous contrôlez le dimensionnement et la simultanéité du mappage de votre source d'événements Amazon SQS via le nombre minimum et maximum de sondeurs d'événements.

Configuration de la simultanéité maximale pour les sources d’événements Amazon SQS

Vous pouvez utiliser le paramètre de simultanéité maximale pour contrôler le comportement de mise à l’échelle de vos sources d’événements SQS. Notez que la simultanéité maximale ne peut pas être utilisée lorsque le mode provisionné est activé. Le paramètre de simultanéité maximale limite le nombre d’instances simultanées de la fonction qu’une source d’événements Amazon SQS peut invoquer. La simultanéité maximale est un paramètre de niveau source d’événement. Si vous avez plusieurs sources d’événements Amazon SQS mappées à une fonction, chaque source d’événements peut avoir un paramètre de simultanéité maximale séparé. Vous pouvez utiliser la simultanéité maximale pour empêcher une file d’attente d’utiliser toute la simultanéité réservée de la fonction ou le reste du quota de simultanéité du compte. La configuration de la simultanéité maximale sur une source d’événements Amazon SQS est gratuite.

Il est important de noter que la simultanéité maximale et la simultanéité réservée sont deux paramètres indépendants. Ne définissez pas une simultanéité maximale supérieure à la simultanéité réservée de la fonction. Si vous configurez la simultanéité maximale, assurez-vous que la simultanéité réservée de votre fonction est supérieure ou égale à la simultanéité maximale totale pour toutes les sources d’événements Amazon SQS sur la fonction. Sinon, Lambda peut limiter vos messages.

Lorsque le quota de simultanéité de votre compte est défini sur la valeur par défaut de 1 000, un mappage des sources d’événements Amazon SQS peut être mis à l’échelle pour invoquer des instances de fonction jusqu’à cette valeur, sauf si vous spécifiez une simultanéité maximale.

Si vous recevez une augmentation du quota de simultanéité par défaut de votre compte, Lambda risque de ne pas être en mesure d’invoquer des instances de fonctions concurrentes jusqu’à votre nouveau quota. Par défaut, Lambda peut effectuer une mise à l’échelle pour invoquer jusqu’à 1 250 instances de fonctions simultanées pour un mappage des sources d’événements Amazon SQS. Si cela ne correspond pas à votre cas d'utilisation, contactez le AWS support pour discuter d'une augmentation de la simultanéité du mappage des sources d'événements Amazon SQS de votre compte.

Note

Pour les files d'attente FIFO, les appels simultanés sont plafonnés soit par le nombre de groupes de messages IDs (messageGroupId), soit par le paramètre de simultanéité maximal, selon le plus faible des deux. Par exemple, si vous avez six groupes de messages IDs et que la simultanéité maximale est fixée à 10, votre fonction peut avoir un maximum de six appels simultanés.

Vous pouvez configurer la simultanéité maximale sur les mappages des sources d’événements Amazon SQS nouveaux et existants.

Configuration de la simultanéité maximale à l’aide de la console Lambda
  1. Ouvrez la page Functions (Fonctions) de la console Lambda.

  2. Choisissez le nom d’une fonction.

  3. Sous Function overview (Vue d’ensemble des fonctions), choisissez SQS. Cela ouvre l’onglet Configuration.

  4. Sélectionnez le déclencheur Amazon SQS et choisissez Edit (Modifier).

  5. Pour Maximum concurrency (Simultanéité maximale), saisissez un nombre compris entre 2 et 1 000. Pour désactiver la simultanéité maximale, laissez la case vide.

  6. Choisissez Enregistrer.

Configurez la simultanéité maximale à l'aide de AWS Command Line Interface ()AWS CLI

Utilisez la commande update-event-source-mapping avec l’option --scaling-config. Exemple :

aws lambda update-event-source-mapping \ --uuid "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE" \ --scaling-config '{"MaximumConcurrency":5}'

Pour désactiver la simultanéité maximale, entrez une valeur vide pour --scaling-config :

aws lambda update-event-source-mapping \ --uuid "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE" \ --scaling-config "{}"
Configuration de la simultanéité maximale à l’aide de l’API Lambda

Utilisez l'UpdateEventSourceMappingaction CreateEventSourceMappingou avec un ScalingConfigobjet.