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

如何配置AWS S3目录级触发器,仅在logs目录更新时触发Lambda?

实现S3仅logs目录更新触发Lambda的方案

最优方案:通过S3事件触发器前缀过滤

直接在S3事件源层面配置过滤规则,只让logs/目录下的对象操作触发Lambda,从源头减少不必要的调用:

  1. 登录AWS控制台,进入目标S3存储桶的管理页面
  2. 切换到「属性」标签,找到「事件通知」模块,点击「创建事件通知」
  3. 填写基础配置:
    • 输入通知名称(如logs-update-trigger)
    • 在「前缀」输入框中填写logs/,这会限定只有路径以logs/开头的对象操作才会触发通知
  4. 选择触发事件:根据需求(新增文件),勾选「所有对象创建事件」或具体的「Put」事件
  5. 选择目标服务为「Lambda函数」,并指定你要触发的Lambda函数
  6. 保存配置即可

备选方案:Lambda内部过滤

如果无法修改现有S3触发器配置,可以在Lambda代码中添加判断逻辑,跳过非logs目录的事件:

以Python为例,在处理事件前先检查对象键的前缀:

def lambda_handler(event, context):
    for record in event['Records']:
        object_key = record['s3']['object']['key']
        # 过滤非logs目录的对象
        if not object_key.startswith('logs/'):
            print(f"忽略非logs目录对象:{object_key}")
            continue
        # 执行你的MongoDB时间戳更新逻辑
        # update_mongodb_timestamp() 这里替换为你的实际代码

方案对比

  • S3前缀过滤:更高效,直接拦截不必要的事件,降低Lambda调用次数和成本
  • Lambda内部过滤:适合已有触发器无法修改的场景,但仍会产生无效的Lambda调用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 06:55:19