Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Création et configuration d’un mappage des sources d’événements Amazon SQS

Mode de mise au point
Création et configuration d’un mappage des sources d’événements Amazon 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.

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.

Pour traiter les messages Amazon SQS avec Lambda, configurez votre file d’attente avec les paramètres appropriés, puis créez un mappage des sources d’événements Lambda.

Configuration d’une file d’attente à utiliser avec Lambda

Si vous n’avez pas encore de file d’attente Amazon SQS, créez-en une à utiliser en tant que source d’événement pour votre fonction Lambda. La fonction Lambda et la file d'attente Amazon SQS doivent être Région AWS identiques, bien qu'elles puissent être différentes. Comptes AWS

Pour laisser à votre fonction le temps de traiter chaque lot d’enregistrements, définissez le délai de visibilité de la file d’attente source à au moins six fois le délai de configuration sur votre fonction. Le délai supplémentaire permet à Lambda d’effectuer une nouvelle tentative si l’exécution de la fonction est limitée pendant le traitement d’un lot précédent.

Par défaut, si Lambda rencontre une erreur à un moment donné lors du traitement d’un lot, tous les messages de ce lot retournent dans la file d’attente. Après le délai de visibilité, les messages redeviennent visibles pour Lambda. Vous pouvez configurer le mappage des sources d’événements pour utiliser les réponses par lots partielles afin que seuls les messages ayant échoué soient renvoyés dans la file d’attente. En outre, en cas d’échec répété du traitement d’un message, Amazon SQS peut envoyer celui-ci à une file d’attente de lettres mortes. Nous vous recommandons de définir maxReceiveCount sur la stratégie de redirection de votre file d’attente source sur au moins 5. Cela donne à Lambda la possibilité d’effectuer quelques tentatives avant d’envoyer les messages ayant échoué directement à la file d’attente de lettres mortes.

Configuration des autorisations de rôle d’exécution Lambda

La politique AWSLambdaSQSQueueExecutionRole AWS gérée inclut les autorisations dont Lambda a besoin pour lire depuis votre file d'attente Amazon SQS. Vous pouvez ajouter cette politique gérée au rôle d’exécution de votre fonction.

En option, si vous utilisez une file d’attente chiffrée, vous devez également ajouter l’autorisation suivante à votre rôle d’exécution :

Création d’un mappage des sources d’événements SQS

Créez un mappage de source d’événement pour indiquer à Lambda d’envoyer des éléments de votre file d’attente à une fonction Lambda. Vous pouvez créer plusieurs mappages de source d’événement pour traiter des éléments de plusieurs files d’attente avec une seule fonction. Quand Lambda invoque la fonction cible, l’événement peut contenir plusieurs éléments, jusqu’à une taille de lot maximale configurable.

Pour configurer votre fonction afin qu'elle puisse lire depuis Amazon SQS, associez la politique AWSLambdaSQSQueueExecutionRole AWS gérée à votre rôle d'exécution. Créez ensuite un mappage des sources d’événements SQS à partir de la console en suivant les étapes suivantes.

Pour ajouter des autorisations et créer un déclencheur
  1. Ouvrez la page Functions (Fonctions) de la console Lambda.

  2. Choisissez le nom d’une fonction.

  3. Choisissez l’onglet Configuration, puis Permissions (Autorisations).

  4. Sous Nom du rôle, cliquez sur le lien vers votre rôle d’exécution. Ce lien ouvre le rôle dans la console IAM.

    Lien vers le rôle d’exécution
  5. Choisissez Ajouter des autorisations, puis Attacher des politiques.

    Attacher des politiques dans la console IAM
  6. Dans le champ de recherche, entrez AWSLambdaSQSQueueExecutionRole. Ajoutez cette politique à votre rôle d’exécution. Il s'agit d'une politique AWS gérée qui contient les autorisations dont votre fonction a besoin pour lire depuis une file d'attente Amazon SQS. Pour plus d'informations sur cette politique, consultez AWSLambdaSQSQueueExecutionRolela référence des politiques AWS gérées.

  7. Revenez à votre fonction dans la console Lambda. Sous Function overview (Vue d’ensemble de la fonction), choisissez Add trigger (Ajouter un déclencheur).

    Section de présentation des fonctions de la console Lambda
  8. Choisissez un type de déclencheur.

  9. Configurez les options requises, puis choisissez Add (Ajouter).

Lambda prend en charge les options de configuration suivantes pour les sources d’événements Amazon SQS :

File d’attente SQS

La file d’attente Amazon SQS à partir de laquelle lire les enregistrements. La fonction Lambda et la file d'attente Amazon SQS doivent être Région AWS identiques, bien qu'elles puissent être différentes. Comptes AWS

Activation du déclencheur

L’état du mappage des sources d’événements. Activez le déclencheur est sélectionné par défaut.

Taille de lot

Le nombre maximum d’enregistrements à envoyer à la fonction dans chaque lot. Pour une file d’attente standard, cela peut aller jusqu’à 10 000 registres. Pour une file d’attente FIFO, le maximum est de 10. Pour une taille de lot supérieure à 10, vous devez également définir la fenêtre de lot (MaximumBatchingWindowInSeconds) sur au moins 1 seconde.

Configurez le délai d’attente de votre fonction de façon à laisser suffisamment de temps pour traiter le lot entier d’éléments. Si les éléments sont longs à traiter, choisissez une taille de lot plus petite. Une grande taille de lot peut améliorer l’efficacité pour des charges de travail qui sont très rapides ou qui induisent beaucoup d’efforts supplémentaires. Si vous configurez une simultanéité réservée sur votre fonction, définissez un minimum de cinq exécutions simultanées pour réduire le risque d’erreurs de limitation lorsque Lambda invoque votre fonction.

Lambda transmet tous les registres du lot à la fonction en un seul appel, tant que la taille totale des événements ne dépasse pas le quota de taille des données utiles d’invocation pour une invocation synchrone (6 Mo). Des métadonnées sont générées par Lambda et Amazon SQS pour chaque registre. Ces métadonnées supplémentaires sont comptabilisées dans la taille de charge utile totale, ce qui peut entraîner l’envoi dans un lot d’un nombre total d’enregistrements inférieur à la taille du lot configuré. Les champs de métadonnées qu’Amazon SQS envoie peuvent être de longueur variable. Pour plus d'informations sur les champs de métadonnées Amazon SQS, consultez la documentation relative aux opérations d'ReceiveMessageAPI dans le manuel Amazon Simple Queue Service API Reference.

Fenêtre de lot

Intervalle de temps maximal (en secondes) pour collecter des enregistrements avant d’invoquer la fonction. Cela s’applique uniquement aux files d’attente standards.

Si vous utilisez une fenêtre de lot supérieure à 0 seconde, vous devez tenir compte de l’augmentation du temps de traitement dans le délai de visibilité de votre file d’attente. Nous vous recommandons de paramétrer votre délai de visibilité de file d’attente à six fois le délai d’expiration de la fonction, en plus de la valeur de MaximumBatchingWindowInSeconds. Cela permet à votre fonction Lambda de traiter chaque lot d’événements et de réessayer en cas d’erreur de limitation.

Lorsque les messages sont disponibles, Lambda commence à les traiter par lots. Lambda commence à traiter cinq lots à la fois avec cinq invocations simultanés de votre fonction. Si les messages sont toujours disponibles, Lambda ajoute jusqu’à 300 instances supplémentaires de votre fonction par minute, jusqu’à un maximum de 1 000 instances de fonction supplémentaires. Pour en savoir plus sur la mise à l’échelle et la simultanéité de la fonction, consultez Mise à l’échelle de fonction Lambda.

Pour traiter plus de messages, vous pouvez optimiser votre fonction Lambda pour un débit plus élevé. Pour plus d'informations, consultez Comprendre comment s' AWS Lambda adapte aux files d'attente standard Amazon SQS.

Simultanéité maximum

Le nombre maximum de fonctions simultanées que la source d’événement peut invoquer. Pour de plus amples informations, veuillez consulter Configuration de la simultanéité maximale pour les sources d’événements Amazon SQS.

Critères de filtrage

Ajoutez des critères de filtrage pour contrôler les événements que Lambda envoie à votre fonction pour traitement. Pour de plus amples informations, veuillez consulter Contrôle des événements envoyés par Lambda à votre fonction.

Rubrique précédente :

SQS
ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.