如何配置AWS Event Bridge规则匹配同一S3存储桶的两个前缀目录
解决AWS EventBridge匹配S3多前缀触发的问题
你当前的事件模式写法有误,导致只有最后一个前缀生效——因为你把两个prefix规则放在了object.key的数组里,这不符合EventBridge的事件模式语法,key字段的匹配规则应为单个对象,数组在这里会被覆盖。
以下是两种正确的配置方式,都能实现文件上传到两个前缀任意一个时触发规则:
方式一:利用数组实现OR逻辑
{ "source": ["aws.s3"], "detail-type": ["Object Created"], "detail": { "bucket": { "name": ["some-bucket"] }, "object": [ { "key": { "prefix": "some-prefix/" } }, { "key": { "prefix": "some-other-prefix/" } } ] } }
方式二:使用$or操作符显式声明或关系
{ "source": ["aws.s3"], "detail-type": ["Object Created"], "detail": { "bucket": { "name": ["some-bucket"] }, "$or": [ { "object": { "key": { "prefix": "some-prefix/" } } }, { "object": { "key": { "prefix": "some-other-prefix/" } } } ] } }
两种写法的核心都是让EventBridge识别到“匹配任意一个前缀”的逻辑,第一种通过数组天然的OR特性实现,第二种通过显式的$or操作符,可读性更强,你可以根据习惯选择。
内容的提问来源于stack exchange,提问作者jigle
相关产品推荐
相关产品推荐

