AWS EventBridge:配置S3事件模式筛选含LOAD的文件
解决S3 EventBridge事件模式匹配包含特定字符串的对象键问题
你的问题出在EventBridge事件模式中对object.key的匹配语法上——直接使用["*LOAD*"]是S3原生事件通知的通配符写法,并不适用于EventBridge的事件模式规则。EventBridge遵循JSON Schema的匹配逻辑,需要用特定关键字实现包含匹配。
正确的事件模式配置
将原模式中的object.key部分替换为{"contains": "LOAD"},完整配置如下:
{ "source": ["aws.s3"], "detail-type": ["Object Created"], "detail": { "bucket": { "name": [{ "suffix": "-landing" }] }, "object": { "key": [{"contains": "LOAD"}] } } }
关键说明
contains关键字会匹配对象键中任意位置包含"LOAD"子串的情况,完全覆盖你需求中识别文件名包含"LOAD"的场景(比如s3://bucket/db/table/LOAD00001.csv这类路径)。- 原配置中
bucket.name的后缀匹配逻辑是正确的,会过滤出所有名称以-landing结尾的存储桶事件。
可选的精确匹配(如果需要)
如果需要更精准的范围(比如仅匹配db/table/路径下、以.csv结尾且包含LOAD的文件),可以组合使用prefix、contains和suffix:
"object": { "key": [ { "prefix": "db/table/", "contains": "LOAD", "suffix": ".csv" } ] }
内容的提问来源于stack exchange,提问作者Renan Nogueira
相关产品推荐
相关产品推荐

