Comment résoudre l'erreur « Configuration is ambiguously defined » (Configuration définie de manière ambiguë) lorsque j’ai essayé de créer une notification d'événement Amazon S3 pour déclencher ma fonction Lambda ?

Lecture de 5 minute(s)
0

J'ai essayé 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 « Configuration is ambiguously defined error » (La configuration est définie de manière ambiguë) s’affiche.

Pour résoudre ce problème, prenez l'une des mesures suivantes :

  • Supprimez l'événement qui se chevauche et créez-en un nouveau.
  • Créez une notification d'événement S3 pour plusieurs événements qui se chevauchent et dont les préfixes ou les suffixes se chevauchent.
  • Repensez votre architecture.

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 des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l’AWS CLI.

Supprimer l'événement qui se chevauche et en créer un nouveau

Pour supprimer les notifications d'événement qui se chevauchent, utilisez la console Amazon S3 ou l'interface de ligne de commande AWS.

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.

Console Amazon S3

Procédez comme suit :

  1. Ouvrez la console Amazon S3, puis sélectionnez votre compartiment.
  2. Choisissez l’onglet Propriétés.
  3. Dans Notifications d'événement, choisissez la notification d'événement qui chevauche la nouvelle notification que vous avez essayé de créer.
  4. Choisissez Supprimer.
  5. Choisissez Créer une notification d'événement.
  6. Dans la liste déroulante des fonctions Lambda, sélectionnez votre fonction, puis choisissez Enregistrer les modifications.

AWS CLI

Utiliser l’AWS CLI pour mettre à jour le fichier JSON de configuration des notifications sur votre compartiment S3. Pour obtenir une liste de toutes les notifications d'événement configurées sur votre compartiment S3, exécutez la commande get-bucket-notification-configuration de l’AWS CLI. Pour supprimer toutes les notifications d'événement S3, exécutez la commande put-bucket-notification-configuration de l'AWS CLI.

aws s3api put-bucket-notification-configuration --bucket=your-bucket-name --notification-configuration="{}"

Remarque : Remplacez your-bucket-name par le nom de votre compartiment.

Après avoir supprimé la notification d'événement qui se chevauche, vous pouvez exécuter la commande put-bucket-notification-configuration de l’AWS CLI pour ajouter de nouvelles notifications.

Créer une notification d'événement S3 pour plusieurs événements qui se chevauchent avec des préfixes ou des suffixes qui se chevauchent

Procédez comme suit :

  1. Ouvrez la console Amazon S3, puis sélectionnez votre compartiment.
  2. Choisissez l’onglet Propriétés.
  3. Dans Notifications d'événement, choisissez Créer une notification d'événement.
  4. Dans Nom de l'événement, entrez un nom pour votre événement, par exemple your-event-name.
  5. Dans Préfixe, entrez un préfixe, par exemple images/.
  6. Dans Suffixe, entrez un suffixe, par exemple .jpg.
  7. Dans Types d'événements, choisissez Tous les objets créent des événements.
  8. Dans la liste déroulante des fonctions Lambda, choisissez votre fonction Lambda.
  9. Sélectionnez Enregistrer les modifications.

Refonte de votre architecture

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.

Par exemple, configurez une notification d'événement pour déclencher une fonction Lambda qui déclenche d'autres fonctions Lambda en fonction de l'événement S3. Ou, configurez une notification d'événement pour publier des événements dans une rubrique Amazon Simple Notification Service (Amazon SNS) ou une file d'attente Amazon Simple Queue Service (Amazon SQS).

Remarque : Assurez-vous que la rubrique ou la file d'attente envoient les événements vers plusieurs fonctions Lambda abonnées. Concevez les fonctions abonnées avec une logique pour décider si elles doivent traiter les événements qu'elles reçoivent. Pour plus d'informations, consultez la section Diffusion en éventail des notifications d'événement S3 à plusieurs points de terminaison.

Vous pouvez également activer la journalisation au niveau de l'objet des actions Amazon S3 dans AWS CloudTrail. Puis, utilisez une règle Amazon CloudWatch Events pour déclencher votre fonction Lambda en fonction du modèle d'événement Amazon S3. Pour plus d'informations, consultez la section Didacticiel : Consigner les opérations au niveau des objets d'Amazon S3 à l'aide d'EventBridge.

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 sections Cas d'utilisation AWS Step Functions et Didacticiels pour l’apprentissage de Step Functions.

Informations connexes

Pourquoi l'erreur « Unable to validate the following destination configurations » (Impossible de valider les configurations de destination suivantes) s'affiche-t-elle lorsque j’utilise des notifications d'événement Amazon S3 ?

Comment puis-je résoudre les problèmes lorsque mes notifications d'événement Amazon S3 n'invoquent pas ma fonction Lambda ?

Traiter les notifications d'événement Amazon S3 avec Lambda

Tutoriel : Utilisation d'un déclencheur Amazon S3 pour appeler une fonction Lambda

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