You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python CDK配置S3触发Lambda多后缀规则的正确方法

问题说明

你当前的CDK配置写法不正确,无法实现预期触发效果,核心问题有3个:

  • 前缀配置错误:需求要求匹配input-files文件夹,你配置的prefix值为input,会误匹配所有以input开头的路径(例如input-other/、input-test/目录下的文件),且未添加路径结尾的斜杠,无法精准定位目标目录,正确前缀值应为input-files/
  • 后缀参数用法错误:NotificationKeyFilter的suffix参数仅支持传入单个字符串,你在同一个suffix参数位传入两个后缀值的写法不符合API定义,无法被解析;此外你写的第二个后缀值"000.json "末尾带有冗余空格,会直接导致匹配失败
  • 多后缀匹配逻辑错误:S3事件通知的单个过滤规则仅支持配置一组前后缀组合,要实现「文件名满足A后缀 或 B后缀」的OR匹配逻辑,需要为每个后缀单独创建独立的NotificationKeyFilter条目,不能将多个后缀写入同一个过滤规则中
正确配置代码
trigger_lambda.add_event_source(
    _aws_lambda_event_sources.S3EventSource(
        bucket,
        events=[_s3.EventType.OBJECT_CREATED],
        filters=[
            # 匹配input-files目录下以_processed.json结尾的文件
            _s3.NotificationKeyFilter(
                prefix="input-files/",
                suffix="_processed.json"
            ),
            # 匹配input-files目录下以000.json结尾的文件
            _s3.NotificationKeyFilter(
                prefix="input-files/",
                suffix="000.json"
            )
        ]
    )
)

补充说明:配置中多个独立的NotificationKeyFilter条目为OR匹配关系,只要上传的文件满足任意一条过滤规则,就会触发Lambda执行。另外注意你原有代码中的Lambda变量名trigger-_lambda包含中划线,不符合Python变量命名规范,实际运行会抛出语法错误,建议调整为下划线命名格式如trigger_lambda。

内容的提问来源于stack exchange,提问作者TNN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 03:18:17