我希望创建一个针对特定存储桶和前缀的AWS CloudWatch Event规则,用于S3创建事件。由于CloudWatch不支持通配符,我尝试显式地指定前缀,如下例所示:
AWS CloudWatch Events规则是否支持S3存储桶/键名称中的任何通配符
(为了保密,这里提供的存储桶和前缀名称为
我的JSON规则:
这可能是由于在
my-data-bucket
和my-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 中所述)。