是否可以为S3 Lambda对象上传事件触发器指定多个前缀和后缀?
S3触发Lambda多前缀/多后缀匹配方案
单条S3事件通知规则本身仅支持配置1个前缀和1个后缀,你可以通过以下方案实现多个前缀、多个后缀的触发过滤需求:
- 配置多条独立触发规则(最推荐)
你可以为同一个Lambda函数绑定多条S3事件通知规则,每条规则分别设置不同的前缀/后缀即可。
以你需要匹配prefixA/和prefixB/两个前缀为例,只需新增2条触发规则:- 规则1:前缀填写
prefixA/,选择对象上传事件类型,绑定目标Lambda - 规则2:前缀填写
prefixB/,选择相同的事件类型和目标Lambda
该方案不需要修改Lambda业务代码,S3侧会直接过滤不符合规则的对象上传行为,不会产生多余的Lambda调用成本。
- 规则1:前缀填写
- Lambda侧代码兜底过滤(适合复杂匹配场景)
如果你有更复杂的匹配需求(比如需要排除特定子路径、模糊匹配后缀等),可以将S3触发规则的前缀、后缀留空,所有对象上传事件都会触发Lambda,在代码入口处先解析事件参数中的对象存储路径,不符合匹配条件就直接终止执行,避免运行后续业务逻辑。
注意:配置多条规则时需确保不同规则的匹配条件没有重叠,否则同一个对象上传会触发多次Lambda调用,例如同时配置
prefixA/和prefixA/test/两个前缀就会出现重叠触发问题,需要提前规避。
内容的提问来源于stack exchange,提问作者Azamat Abdullaev
相关产品推荐
相关产品推荐

