在创建 Amazon S3 事件通知以触发 Lambda 函数时,为什么会出现“Configuration is ambiguously defined”错误?

2 分钟阅读
0

我尝试创建 Amazon Simple Storage Service(Amazon S3)存储桶事件通知来触发我的 AWS Lambda 函数,但收到了一个错误。

简短描述

当通知的事件信息及其前缀或后缀与 S3 存储桶的通知配置重叠时,将发生“Configuration is ambiguously defined error”错误。

当您执行以下操作之一时,可能会发生错误:

  • 重新创建您最近删除的 S3 事件通知。
  • 使用重叠的前缀或后缀为多个重叠事件创建 S3 事件通知。

**注意:**Amazon S3 事件通知配置允许具有非重叠前缀或后缀的重叠事件。这些配置还允许具有重叠前缀或后缀的非重叠事件。

有关更多信息,请参阅使用对象键名筛选配置事件通知

解决方法

**注意:**如果在运行 AWS 命令行界面(AWS CLI)命令时收到错误,请确保您使用的是最新版本的 AWS CLI

要查看当前 S3 存储桶的通知配置,请执行以下任一操作:

然后,请执行以下操作之一:

删除重叠的事件

Amazon S3 控制台中,删除与您尝试创建的新事件通知重叠的现有事件通知。

**注意:**当您删除 Lambda 函数触发器时,不会自动删除关联的 S3 事件通知。在创建没有后缀限制的新触发器之前,您还必须删除 Amazon S3 中的通知。

-或-

使用 AWS CLI 更新您的 S3 存储桶上的通知配置 JSON 文件。要获取在 S3 存储桶上配置的所有事件通知的列表,请运行 AWS CLI 命令 get-bucket-notification-configuration。要删除所有 S3 事件通知,请运行 AWS CLI 命令 put-bucket-notification-configuration,如下所示:

**注意:**将 bucket-name 替换为您的存储桶名称。

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

删除重叠事件通知后,您可以使用 Amazon S3 控制台或 AWS CLI 命令 put-bucket-notification-configuration 添加新通知。

重新配置新通知

更改您的 S3 存储桶命名空间对象键命名方式,以允许具有非重叠前缀的多个重叠事件。

例如,要指定重叠的事件对象(例如,上传的图像),请根据图像文件类型(后缀)使用不同的 S3 存储桶文件夹(前缀):

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

针对您的用例重新设计

如果您无法重新配置您的 S3 事件通知来避免重叠,请尝试重新设计您的架构来进行解决。

例如:

**提示:**对于更复杂的架构和流程,使用 AWS Step Functions 状态机来设计和管理您的工作流程。有关更多信息,请参阅 AWS Step Functions 应用场景Tutorials for Step Functions


相关信息

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 官方
AWS 官方已更新 1 年前