为 S3 前缀创建 AWS CloudWatch 事件规则

Create AWS CloudWatch Event rule for S3 prefix

我希望在特定的存储桶和前缀中为 S3 创建事件创建 AWS CloudWatch 事件规则。由于 CloudWatch 不支持通配符,因此我尝试明确给出前缀,如下例所示:

(为了混淆,我在此处提供存储桶和前缀名称 my-data-bucketmy-data-prefix/

我的 JSON 规则:

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

产生错误:

Event pattern contains invalid element (can only be Strings enclosed in quotes, numbers, and the unquoted keywords true, false, and null)

这可能是 key 请求参数不允许使用花括号,但是如何创建规则以仅侦听特定前缀,而不允许使用通配符? (并且最好不必像 中那样自定义 CloudTrail 跟踪)

您的事件在 CloudWatch Events (CWE) 规则中无效,但应该可以替换 CWE,即 AWS EventBridge (EB)。因此我建议在该事件中使用 EB。

EB 基本上是 CWE 的新版本,所以你可以做同样的事情。