Pourquoi ma notification d'événement Amazon S3 n'appelle-t-elle pas ma fonction Lambda ?

Lecture de 4 minute(s)
0

J'ai configuré une notification d'événement Amazon Simple Storage Service (Amazon S3) pour déclencher ma fonction AWS Lambda. La fonction n'est pas appelée lorsque l'événement Amazon S3 se produit.

Résolution

Remarque: si vous recevez des erreurs lors de l'exécution de commandes AWS Command Line Interface (AWS CLI), assurez-vous d'utiliser la version la plus récente d'AWS CLI.

Vérifier que votre type d'évènement Amazon S3 est correctement configuré

Lorsque vous configurez une notification d'événement Amazon S3, vous devez spécifier quels types d'événements Amazon S3 pris en charge entraînent l'envoi de la notification par Amazon S3. Si un type d'événement que vous n'avez pas spécifié se produit dans votre compartiment Amazon S3, alors Amazon S3 n'envoie pas de notification.

Par exemple, une notification d'événement Amazon S3 est configurée pour appeler Lambda avec l'événement s3:ObjectCreated:Put. Si vous chargez un fichier volumineux, celui-ci est chargé en utilisant le téléchargement partitionné. L'événement s3:ObjectCreated:CompleteMultipartUpload doit être sélectionné avec l'événement s3:ObjectCreated:Put. Vous pouvez également utiliser le type d'événement s3:ObjectCreated:* pour demander des notifications pour toute API utilisée pour créer un objet.

Vérifier que vos filtres de nom de clé d'objet incluent le nom du fichier chargé

Si vos notifications d'événements sont configurées pour utiliser le filtrage des noms de clé d'objet, elles sont publiées uniquement pour les objets comportant des préfixes ou des suffixes spécifiques. Un caractère générique (« * ») ne peut pas être utilisé dans les filtres comme préfixe ou suffixe pour représenter n'importe quel caractère. Assurez-vous que les filtres de préfixe ou de suffixe spécifiés dans la notification d'événement incluent le nom de la clé de l'objet chargé.

Vérifier que les filtres de noms de clés d'objets sont au format encodé en URL (encodé en pourcentage)

Si vos notifications d'événements sont configurées pour utiliser le filtrage des noms de clé d'objet, elles sont publiées uniquement pour les objets comportant des préfixes ou des suffixes spécifiques.

Si vous utilisez des caractères spéciaux dans vos préfixes ou suffixes, vous devez les saisir au format encodé en URL (encodé en pourcentage) :

  • Parenthèses (« ( ) »)
  • Les caractères ASCII vont de 00 à 1F hexadécimal (valeurs décimales de 0 à 31) et 7F (valeur décimale 127)
  • Dollar (« $ »)
  • esperluette (« & »)
  • Signe plus (« + »)
  • virgule (« , »)
  • Deux points (« : »)
  • Point-virgule (« ; »)
  • Signe égal (« = »)
  • Point d'interrogation (« ? »)
  • Arobase (« @ »)
  • Espace (" ")

Par exemple, pour définir la valeur d'un préfixe comme « test = abc/ », entrez « test%3Dabc/ » pour sa valeur.

Remarque : un caractère générique (« * ») ne peut pas être utilisé dans les filtres comme préfixe ou suffixe pour représenter n'importe quel caractère.

Pour plus d'informations, veuillez consulter les Directives de dénomination de la clé d'objet.

Vérifier que la politique AWS Identity and Access Management (IAM) de votre fonction Lambda dispose des autorisations requises

Vérifiez votre politique basée sur les ressources de votre fonction Lambda pour confirmer qu'elle autorise votre compartiment Amazon S3 à appeler la fonction. Si ce n'est pas le cas, ajoutez les autorisations requises en suivant les instructions de la section Octroi de l'accès aux fonctions aux services AWS.

Pour plus d’informations, consultez Autorisations AWS Lambda.

Remarque : lorsque vous ajoutez une nouvelle notification d'événement à l'aide de la console Amazon S3, les autorisations requises sont automatiquement ajoutées à la politique de votre fonction. Si vous utilisez l'action put-bucket-notification-configuration dans l'AWS CLI pour ajouter une notification d'événement, la politique de votre fonction n'est pas mise à jour automatiquement.

Vérifier que votre fonction Lambda est configurée pour gérer les appels simultanés à partir des notifications d'événements Amazon S3

Votre fonction Lambda doit être configurée pour gérer les appels simultanés à partir des notifications d'événements Amazon S3. Si les demandes d'appel sont plus rapides que la capacité de mise à l'échelle de votre fonction ou si votre fonction a atteint la simultanéité maximale, Lambda limite ces demandes.

Pour plus d'informations, consultez Invocation asynchrone et Mise à l'échelle de fonction Lambda.


Informations connexes

Comment résoudre les problèmes d'appel d'une fonction Lambda avec une notification d'événement Simple Storage Service (Amazon S3) à l'aide de Systems Manager Automation ?

Utilisation d'AWS Lambda avec les événements Amazon S3

Démonstration : configuration d'un compartiment pour les notifications (rubrique SNS ou file d'attente SQS)

Didacticiel : utilisation d’un déclencheur Amazon S3 pour appeler une fonction Lambda

Pourquoi l'erreur « Unable to validate the following destination configurations » (Impossible de valider les configurations de destination suivantes) se produit-elle lors de la création d'une notification d'événement Simple Storage Service (Amazon S3) permettant d'appeler ma fonction Lambda ?

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an