如何通过 AWS EventBridge 上的对象键后缀过滤 s3 数据事件

How to filter an s3 data event by object key suffix on AWS EventBridge

我在 AWS EventBridge 上创建了一个触发 Sagemaker Pipeline 执行的规则。为此,我有以下事件模式:

{
  "source": ["aws.s3"],
  "detail-type": ["AWS API Call via CloudTrail"],
  "detail": {
    "eventSource": ["s3.amazonaws.com"],
    "eventName": ["PutObject", "CopyObject", "CompleteMultipartUpload"],
    "requestParameters": {
      "bucketName": ["my-bucket-name"],
      "key": [{
        "prefix": "folder/inside/my/bucket/"
      }]
    }
  }
}

我已启用 CloudTrail 来记录我的 S3 数据事件,并且该规则正在正确触发我的 Sagemaker Pipeline 执行。

这里的问题是: 正在为我的前缀中 any 对象的所有 put/copy 触发管道执行。然后,我想仅当特定对象上传到存储桶中时才触发我的管道执行,因为我不知道它的全名。

例如,我可能拥有的对象名称是动态构建此日期的位置:

my-bucket-name/folder/inside/my/bucket/2021-07-28/_SUCESS

我想用这样的东西写一个事件模式:

"prefix": "folder/inside/my/bucket/{current_date}/_SUCCESS"

"key": [{
        "prefix": "folder/inside/my/bucket/"
      }, {
        "suffix": "_SUCCESS"
      }]

我认为 AWS 上的事件模式不支持后缀过滤。在文档中,行为不明确。 我已经使用后缀配置了 S3 事件通知,并将过滤后的通知发送到 SQS 队列,但现在我不知道如何处理这个队列才能调用我的 EventBridge 规则来触发 Sagemaker Pipeline 执行。

我正在寻找类似的功能。

很遗憾,基于 AWS 的文档 (https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html)

..看起来它只支持以下模式: