AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
Pourquoi la mise à l’échelle de ma fonction Lambda associée à une source d’événements Amazon SQS ne s’effectue-t-elle pas de manière optimale ?
La fonction AWS Lambda pour ma source d'événements de file d'attente Amazon Simple Queue Service (Amazon SQS) ne se met pas à l’échelle comme prévu. Je souhaite configurer une simultanéité optimale.
Résolution
Remarque : lorsque vous configurez une file d’attente Amazon SQS comme source d’événement, les fonctions Lambda peuvent effectuer idéalement une augmentation verticale jusqu’à 300 instances supplémentaires par minute. Le nombre maximum d'exécutions simultanées pour les files d'attente standard est de 1 250. Si vous utilisez le mappage des sources d’événements FIFO, les fonctions peuvent réduire horizontalement la simultanéité au nombre de groupes de messages actifs.
Identifier et résoudre les problèmes d'invocation des fonctions Lambda
Pour éviter les erreurs à grande échelle, Lambda limite la mise à l’échelle des fonctions en cas d’erreur d’invocation. Une fois les problèmes résolus, Lambda continue de mettre à l’échelle la fonction. Pour plus d’informations, consultez la section Stratégie de backoff en cas d’échec des invocations. Pour résoudre les erreurs d'invocation des fonctions Lambda, consultez les sections Gestion des erreurs relatives à une source d'événements SQS dans Lambda et Comment puis-je résoudre les échecs de fonctions Lambda ?
Configurer une fonction Lambda avec une simultanéité optimale
Simultanéité réservée
Si vous avez configuré la simultanéité réservée pour une fonction, Lambda limite cette fonction lorsqu’elle atteint la valeur réservée. Les mappages de sources d'événements n'incluent pas la simultanéité réservée et peuvent traiter plus de messages provenant de votre file d'attente que d'en envoyer à votre fonction.
La simultanéité réservée minimale pour votre fonction doit être de 1 250 pour les files SQS standard et égale au total des groupes de messages actifs pour les files FIFO. Il est recommandé de définir un niveau de simultanéité réservée supérieur au nombre de groupes de messages dans la file d’attente FIFO. En effet, une valeur de simultanéité réservée inférieure peut entraîner des retards de traitement dans la file d’attente FIFO et limiter la fonction.
Important : pour limiter le nombre d’invocations simultanées, utilisez le paramètre de simultanéité maximale pour les sources d’événements Amazon SQS au lieu de la simultanéité réservée.
Simultanéité par défaut
Votre compte AWS dispose d'un quota de simultanéité par défaut de 1 000 pour toutes les fonctions du même compte et de la même région AWS. Les fonctions sont mises à l’échelle jusqu'à atteindre la simultanéité maximale disponible. Lorsque toutes vos fonctions utilisent le groupe de 1 000 applications simultanées, Lambda limite les invocations.
Lambda limite la vitesse à laquelle vos fonctions peuvent être mises à l’échelle afin que les pics de trafic soudains n'entraînent pas une mise à l'échelle excessive des fonctions. La mise à l’échelle des fonctions Lambda s’effectue initialement selon le taux de mise à l’échelle de la simultanéité. Étant donné que le taux de mise à l'échelle de la simultanéité se situe au niveau de la fonction, chaque fonction de votre compte peut être mise à l’échelle indépendamment des autres fonctions. Le taux de mise à l’échelle de la simultanéité diffère également du quota de simultanéité défini au niveau du compte, qui spécifie la quantité totale d’unités de simultanéité disponibles pour l’exécution des fonctions.
Remarque : la simultanéité par défaut est différente de la simultanéité provisionnée. Pour plus d'informations, consultez la section Comprendre la simultanéité réservée et la simultanéité provisionnée.
Paramètre de simultanéité maximale
Lorsque vous définissez la simultanéité maximale d’une source d’événements, cette valeur ne s’applique qu’à cette source d’événements spécifique. Les sources d’événements supplémentaires pour lesquelles aucune limite maximale de simultanéité n’est définie utilisent le quota de simultanéité restant du compte ou la simultanéité réservée.
Le paramètre de simultanéité maximale et le paramètre de simultanéité réservée peuvent être utilisés conjointement. Il est recommandé de définir la simultanéité maximale à une valeur inférieure à la simultanéité réservée de la fonction afin que les fonctions ne soient pas ralenties.
Vérifier que la file d’attente Amazon SQS contient suffisamment de messages pour permettre la mise à l’échelle de la fonction Lambda
Si une file d’attente Amazon SQS est configurée pour invoquer une fonction Lambda, Lambda n’augmente le nombre d’invocations que s’il y a des messages dans la file d’attente.
Pour utiliser Amazon CloudWatch afin de vérifier combien de messages de votre file d'attente doivent être traités, consultez la métrique ApproximateNumberOfMessagesVisible de la file d'attente.
Si la métrique est faible ou égale à 0, la mise à l’échelle de la fonction ne peut s’effectuer.
Si la métrique est élevée et qu'il n'y a aucun problème d'invocation, augmentez la taille du lot sur votre notification d'événement jusqu'à ce que la métrique Durée n'augmente pas. Pour plus d'informations, consultez la section Types de métriques pour les fonctions Lambda.
Remarque : la taille de lot maximale d’une file d’attente Amazon SQS standard est de 10 000 enregistrements. Pour les files d’attente FIFO, la taille de lot maximale est de 10 enregistrements.
Vérifier qu'Amazon SQS a ajouté les messages à une file d'attente
Pour vérifier qu'Amazon SQS a ajouté les nouveaux messages à une file d'attente, consultez la métrique NumberOfMessagesSent de la file d'attente.
Confirmer que le consommateur a effectué l'appel d’API ReceiveMessage
Pour vérifier que le consommateur a effectué l'appel d'API ReceiveMessage, consultez la métrique NumberOfMessagesReceived de la file d'attente.
Remarque : les pics de la métrique NumberOfEmptyReceives indiquent que le consommateur a effectué l'appel d'API ReceiveMessage, mais l'appel ne renvoie aucun message de la file d'attente. Ce problème se produit lorsqu'aucun message n'est dans la file d'attente.
Utiliser le mode provisionné avec les mappages de sources d'événements Amazon SQS
Utilisez le mode provisionné pour les charges de travail afin d'affiner le débit de votre mappage de sources d'événements et de définir les limites pour les observateurs d'événements. Le mappage de sources d'événements Amazon SQS configuré avec le mode provisionné se met à l’échelle 3 fois plus rapidement et présente une simultanéité 16 fois supérieure à celle de la fonctionnalité de mappage de sources d'événements Amazon SQS par défaut.
Il est recommandé d'utiliser le mode provisionné pour les charges de travail axées sur des événements SQS ayant des exigences de performances strictes. Par exemple, les sociétés de services financiers qui traitent des flux de données de marché et les plateformes de commerce électronique qui fournissent des recommandations personnalisées en temps réel.
Pour plus d'informations, consultez la section AWS Lambda améliore le traitement des événements grâce au mode provisionné pour le mappage de sources d'événements SQS.
Remarque : le mode provisionné entraîne des coûts supplémentaires. Pour plus d'informations, consultez la section Tarification AWS Lambda.
Informations connexes
- Sujets
- Compute
- Balises
- AWS Lambda
- Langue
- Français
Vidéos associées


Contenus pertinents
demandé il y a un an
demandé il y a 2 ans
demandé il y a 3 ans
AWS OFFICIELA mis à jour il y a 5 ans