Why do I get the error "Configuration is ambiguously defined" when creating an Amazon S3 event notification to trigger my Lambda function?

4 minuti di lettura
1

I'm trying to create an Amazon Simple Storage Service (Amazon S3) bucket event notification to trigger my AWS Lambda function and received an error.

Short description

The "Configuration is ambiguously defined error" occurs when a notification's event information and its prefix or suffix overlap with an S3 bucket's notification configuration.

The error can occur when you're doing one of the following:

  • Recreating an S3 event notification that you recently deleted.
  • Creating S3 event notifications for multiple overlapping events using overlapping prefixes or suffixes.

Note: Amazon S3 event notification configurations allow overlapping events with non-overlapping prefixes or suffixes. The configurations also allow non-overlapping events with overlapping prefixes or suffixes.

For more information and examples, see Configuring event notifications using object key name filtering.

Resolution

Note: If you receive errors when running AWS Command Line Interface (AWS CLI) commands, make sure that you’re using the most recent AWS CLI version.

To review your current S3 bucket's notification configuration, do either of the following:

Then, do one of the following:

Remove an overlapping event

In the Amazon S3 console, delete an existing event notification that overlaps with the new one that you're trying to create.

Note: When you delete a Lambda function trigger, the associated S3 event notification isn't automatically deleted. You must also delete the notification in Amazon S3 before creating a new trigger without suffix constraints.

-or-

Update the notification configuration JSON file on your S3 bucket using the AWS CLI. To get a list of all event notifications configured on your S3 bucket, run the AWS CLI command get-bucket-notification-configuration. To remove all S3 event notifications, run the AWS CLI command put-bucket-notification-configuration similar to the following:

Note: Replace bucket-name with your bucket name.

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

After you remove the overlapping event notification, you can add new notifications using the Amazon S3 console or the AWS CLI command put-bucket-notification-configuration.

Reconfigure the new notification

Change the object key naming for your S3 bucket namespace to allow multiple overlapping events with non-overlapping prefixes.

For example, to specify that overlapping event objects, such as uploaded images, use a different S3 bucket folder (prefix) depending on the image file type (suffix):

  • S3://mybucket/uploadedJPEG
  • S3://mybucket/uploadedGIF

Redesign for your use case

If you can't reconfigure your S3 event notification to avoid the overlap, try redesigning your architecture to work around it.

For example:

Tip: For more complex architecture and processes, use an AWS Step Functions state machine to design and manage your workflow. For more information, see AWS Step Functions use cases and Tutorials for Step Functions.


Related information

Why do I get the error "Unable to validate the following destination configurations" when creating an Amazon S3 event notification to invoke my Lambda function?

Why doesn't my Amazon S3 event notification invoke my Lambda function?

Using AWS Lambda with Amazon S3

Tutorial: Using an Amazon S3 trigger to invoke a Lambda function

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa
2 commenti

Thank you for this. This was really helpful.

risposta 8 mesi fa

This can also be related to existing notification configuration destinations being invalid, rather than overlapping prefixes or suffixes. I found that existing event destinations had been removed, though the notification configuration pointing to them was still present, and this prevented any new configurations being added, even with a random prefix, suffix and previously unused event type.

The solution obviously was to validate any existing notification configuration destinations and remove the ones that were no longer valid.

risposta 4 mesi fa