为何AWS EventBridge规则用OR过滤?如何改为AND逻辑?
S3 EventBridge 规则逻辑问题分析与修复
为什么当前规则是OR逻辑
在EventBridge的事件模式语法中,当针对同一个字段(此处为detail.object.key)使用数组形式定义多个过滤条件时,数组内的每一项会被视为独立的匹配规则,彼此之间是**OR(或)**关系。你当前的规则把suffix和prefix分别放在key数组的两个元素里,所以只要对象key满足「以.csv结尾」或者「以in/开头」任一条件,就会触发规则,这和你预期的AND逻辑不符。
如何修改为AND逻辑
要实现「同时满足前缀in/和后缀.csv」的AND逻辑,需要将suffix和prefix放在同一个对象内,而非数组的不同元素中。EventBridge会将同一对象内的多个过滤条件默认视为AND关系。
修改后的正确规则如下:
{ "detail-type": ["Object Created"], "source": ["aws.s3"], "detail": { "bucket": { "name": ["mybucket"] }, "object": { "key": { "suffix": ".csv", "prefix": "in/" } } } }
内容的提问来源于stack exchange,提问作者jimmyorpheus
相关产品推荐
相关产品推荐

