添加路径前缀后EventBridge模式无效,报错'name必须是对象或数组'
解决S3路径前缀触发EventBridge事件模式验证失败的问题
你的问题出在对象前缀的匹配语法写错了——EventBridge针对S3对象前缀的匹配,不需要把prefix嵌套在key的数组里,直接在detail.object层级下声明prefix字段即可。
错误原因
你写的"object": {"key": [{"prefix": "raw"}]}不符合EventBridge的事件模式规则:
key是S3事件里的字符串字段,不能用数组包裹对象的形式来做前缀匹配- 前缀匹配需要直接使用
prefix作为字段名,放在detail.object下面
正确的事件模式
把前缀匹配的写法修正后,验证就能通过:
{ "source": ["aws.s3"], "detail-type": ["Object Created"], "detail": { "bucket": { "name": ["test-test-20230118"] }, "object": { "prefix": "raw" } } }
补充说明
- 这个写法会匹配所有在
test-test-20230118桶中,raw前缀下创建的对象(比如raw/file1.txt、raw/subdir/file2.jpg这类路径) - 如果你的前缀是带斜杠的(比如
raw/),直接把prefix的值改成"raw/"即可,避免匹配到类似rawfile.txt这种不符合预期的对象
内容的提问来源于stack exchange,提问作者MWSF
相关产品推荐
相关产品推荐

