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

3
我希望创建一个针对特定存储桶和前缀的AWS CloudWatch Event规则,用于S3创建事件。由于CloudWatch不支持通配符,我尝试显式地指定前缀,如下例所示: AWS CloudWatch Events规则是否支持S3存储桶/键名称中的任何通配符 (为了保密,这里提供的存储桶和前缀名称为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 trail(就像Cloudwatch event rule listen to s3 bucket with specific keypath 中所述)。
1个回答

2
您的事件在CloudWatch Events(CWE)规则中无效,但对于CWE替代品——即AWS EventBridge(EB),应该是可以正常使用的。因此,我建议您使用EB来处理该事件。
EB基本上是CWE的新版本,因此您可以完成相同的操作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接