上传具有特定后缀的 S3 密钥时如何触发 AWS 事件规则

Aar*_*ong 12 amazon-s3 amazon-web-services amazon-cloudwatch amazon-cloudtrail aws-event-bridge

我正在尝试创建一个 AWS 事件规则,仅当具有特定后缀的文件上传到 S3 存储桶时才会触发该规则。

{
  "source": [
    "aws.s3"
  ],
  "detail-type": [
    "AWS API Call via CloudTrail"
  ],
  "detail": {
    "eventSource": [
      "s3.amazonaws.com"
    ],
    "eventName": [
      "PutObject",
      "CompleteMultipartUpload"
    ],
    "requestParameters": {
      "bucketName": [
        "bucket-name"
      ],
      "key": [
        { "suffix": ".csv" }
      ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

据我了解,AWS具有可以使用的基于内容的过滤,但文档没有显示使用后缀的能力,仅显示其他模式中的前缀:https ://docs.aws.amazon.com/eventbridge/latest/userguide /content-filtering-with-event-patterns.html

理想情况下,我可以在此处执行此操作,而无需中间 Lambda,因为我的事件目标是 ECS Fargate 任务。

Chr*_*ams 6

目前(2020 年 7 月)CloudWatch 事件似乎没有内置后缀过滤。

您可以改为配置S3 事件通知,它支持指定前缀和后缀的功能。

通过使用 S3 事件通知,您仍然可以将目标作为 Lambda。

  • 你可以去 S3 event -> SNS -> Eventbridge -> Fargate (2认同)
  • @Merlin 虽然它会起作用,但我的 AWS 成本会增加很多,因为我不希望每月添加 5 亿条额外的 SNS 消息令人难以置信,他们不支持适当的过滤 - 他们是否希望人们使用更少的过滤器,以便获得更多的事件被解雇并赚更多钱? (2认同)