为什么我在创建 Amazon S3 事件通知以触发我的 Lambda 函数时收到“配置的定义模棱两可”错误?

上次更新时间:2021 年 1 月 11 日

我尝试创建 Amazon Simple Storage Service (Amazon S3) 存储桶事件通知来触发我的 AWS Lambda 函数。为什么会收到错误“配置的定义模棱两可。如果相同事件类型的前缀重叠,则两个规则不能具有重叠的前缀。”?

简短描述

当通知的事件信息及其前缀或后缀与 S3 存储桶的通知配置重叠时,将发生配置的定义模棱两可错误。

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

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

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

有关更多信息和示例,请参阅如何启用事件通知通过对象键名称筛选配置通知

解决方法

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

执行以下任意一项操作:

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

删除重叠的事件

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

-或者-

通过运行 AWS CLI 命令 put-bucket-notification-configuration 更新您的 S3 存储桶上的通知配置 JSON 文件。

重新配置新通知

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

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

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

针对您的使用案例重新设计

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

提示:对于更加复杂的架构和过程,请使用 AWS Step Functions 状态机设计并管理您的工作流。有关更多信息,请参阅 AWS Step Functions 使用案例教程