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

Lambda仅代码变更时被S3 putObject事件触发,该如何解决?

结论

该行为不属于Lambda的正常运行逻辑。Lambda的触发规则与函数代码是否变更完全无关,只要你配置的S3 putObject事件满足触发条件,Lambda就应当被正常调用,且生成对应的CloudWatch运行日志。

排查与修复步骤
  • 核对S3事件通知配置

    确认你配置的事件类型已勾选All object create events或者对应你上传动作的事件分类;同时核对事件的前缀、后缀过滤规则,确认你上传的文件路径、后缀符合规则要求,没有被过滤规则拦截。

  • 检查Lambda执行角色的日志写入权限

    确认Lambda绑定的执行角色已附加包含CloudWatch日志写入权限的策略,所需权限动作如下:

    logs:CreateLogGroup
    logs:CreateLogStream
    logs:PutLogEvents
    
    若缺少上述权限,即使Lambda被触发也不会生成CloudWatch日志,会出现「函数未运行」的错觉。
  • 检查S3调用Lambda的权限

    确认Lambda的基于资源的策略中已允许对应S3桶调用该函数,你可以重新在S3控制台的事件通知页面重新配置一次触发器,系统会自动帮你补全该权限,无需手动编写策略。

  • 查看Lambda调用指标确认触发状态

    进入Lambda控制台的「监控」标签页,查看Invocations(调用次数)指标:如果指标有对应你上传时间的增长,说明Lambda已被触发,问题出在日志权限上;如果指标没有增长,说明S3事件没有成功触发Lambda,回到前两步重新核对事件配置和调用权限即可。

  • 排查限流与运行错误

    若调用次数指标有增长,同时Errors(错误)或Throttles(限流)指标也有对应增长,说明函数被触发后运行报错或被限流,根据错误信息对应修复代码、调整并发配置即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 13:15:07