J'essaie de créer une notification d'événement de compartiment Amazon Simple Storage Service (Amazon S3) pour déclencher ma fonction AWS Lambda et j'ai reçu une erreur.
Brève description
Lorsque les informations relatives à l'événement d'une notification et son préfixe ou suffixe se chevauchent avec la configuration de la notification d'un seau S3, le message « La configuration est définie de manière ambiguë » s’affiche.
L'erreur peut se produire lorsque vous effectuez l'une des opérations suivantes :
- Récupération d'une notification d'événement S3 que vous avez supprimée récemment.
- Création de notifications d'événements S3 pour plusieurs événements qui se chevauchent en utilisant les mêmes préfixes ou suffixes.
Remarque : Les configurations de notification d'événement Amazon S3 autorisent les événements qui se chevauchent avec des préfixes ou des suffixes qui ne le font pas. Les configurations permettent également des événements qui ne se chevauchent pas avec des préfixes ou des suffixes qui le font.
Pour plus d'informations et des exemples, voir Configuration des notifications d'événements à l'aide du filtrage par nom de clé d'objet.
Résolution
Remarque : Si vous recevez des erreurs lors de l'exécution de l'interface de la ligne de commande AWS (AWS CLI), assurez-vous d'utiliser la version la plus récente d'AWS CLI.
Effectuez une des opérations suivantes si vous souhaitez modifier la configuration des notifications de votre compartiment S3 actuel :
Ensuite, effectuez l'une des actions suivantes :
Suppression d'un événement qui se chevauche
Dans la console Amazon S3, supprimez une notification d'événement qui chevauche celle que vous essayez de créer.
Remarque : Lorsque vous supprimez un déclencheur de fonction Lambda, la notification d'événement S3 associée n'est pas automatiquement supprimée. Vous devez également supprimer la notification dans Amazon S3 avant de créer un nouveau déclencheur sans contraintes de suffixe.
-ou-
Vous pouvez mettre à jour le fichier JSON de configuration des notifications sur votre compartiment S3 en utilisant AWS CLI. Pour obtenir une liste de toutes les notifications d'événements configurées sur votre compartiment S3, exécutez la commande AWS CLI get-bucket-notification-configuration. Pour supprimer toutes les notifications d'événements S3, exécutez la commande AWS CLI put-bucket-notification-configuration semblable à la suivante :
Remarque : Remplacez bucket-name par le nom de votre compartiment.
aws s3api put-bucket-notification-configuration --bucket=<bucket-name> --notification-configuration="{}"
Une fois la notification d'événement de chevauchement supprimée, vous pouvez ajouter de nouvelles notifications à l'aide de la Console Amazon S3 ou de la commande AWS CLI put-bucket-notification-configuration.
Reconfiguration de la nouvelle notification
Modifiez la dénomination de la clé d'objet de l’espace de noms de votre compartiment S3 afin d'autoriser plusieurs événements qui se chevauchent avec des préfixes qui ne se chevauchent pas.
Par exemple, pour spécifier que les objets d'événement qui se chevauchent, tels que les images chargées, utilisent un autre dossier de compartiment S3 (préfixe) en fonction du type de fichier image (suffixe) :
- S3://mybucket/uploadedJPEG
- S3://mybucket/uploadedGIF
Refonte pour votre cas d'utilisation
Si vous ne pouvez pas reconfigurer votre notification d'événement S3 pour éviter le chevauchement, essayez de repenser votre architecture pour contourner ce problème.
Exemple :
Astuce : Pour une architecture et des processus plus complexes, utilisez une machine d'état AWS Step Functions pour concevoir et gérer votre flux de travail. Pour plus d'informations, consultez les Cas d'utilisation AWS Step Functions et les Didacticiels pour Step Functions.
Informations connexes
Pourquoi l'erreur « 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 ?
Pourquoi ma notification d'événement Simple Storage Service (Amazon S3) n'appelle-t-elle pas ma fonction Lambda ?
Utilisation d'AWS Lambda avec Amazon S3
Didacticiel : Utilisation d'un déclencheur Amazon S3 pour appeler une fonction Lambda