AWS CloudWatch Events Rule是否支持S3存储桶/密钥名称中的任何通配符

k1r*_*1r0 15 amazon-s3 amazon-cloudwatch

我正在尝试创建一个事件规则,该规则由不同AWS账户中S3存储桶中文件的更改触发.详细说明在这里

到目前为止,规则适用于确切的文件名,但我需要使用文件名前缀.在工作示例中,文件名是非工作示例中的精确字符串,文件名是通配符.CloudWatch Events Rule JSON模式是否支持通配符?

工作配置:

{
  "source": ["aws.s3"],
  "account": ["1111111xxxxx"],
  "detail": {
    "eventSource": ["s3.amazonaws.com"],
    "eventName": ["PutObject"],
    "requestParameters": { "bucketName": ["mybucket"], "key": ["myfile-20180301.csv"] }
  }
}
Run Code Online (Sandbox Code Playgroud)

非工作配置:

{
  "source": ["aws.s3"],
  "account": ["1111111xxxxx"],
  "detail": {
    "eventSource": ["s3.amazonaws.com"],
    "eventName": ["PutObject"],
    "requestParameters": { "bucketName": ["mybucket"], "key": ["myfile-*"] }
  }
}
Run Code Online (Sandbox Code Playgroud)

小智 11

例如,我使用基于内容的过滤(于 2020 年 2 月发布)(例如前缀)为此找到了一个奇特的解决方案。

所以在你的情况下,解决方案应该是:

{
  "source": ["aws.s3"],
  "account": ["1111111xxxxx"],
  "detail": {
    "eventSource": ["s3.amazonaws.com"],
    "eventName": ["PutObject"],
    "requestParameters": {
      "bucketName": ["mybucket"],
      "key": [{ "prefix": "myfile-" }]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)