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

Serverless Framework迁移S3桶触发器至新Lambda遇部署错误

S3触发器迁移Lambda函数时部署报错解决方法

问题场景

原有Lambda函数func1绑定了S3桶触发器和SQS触发器,现需将这两个触发器迁移至新创建的func2,修改Serverless配置后部署时出现配置冲突报错。

原有Serverless配置

functions:
  func1:
    handler: src/func1/func1.handler
    events:
      - s3:
          bucket: ${self:custom.bucketname}
          event: s3:ObjectCreated:*
          existing: true
      - sqs:
          arn: !GetAtt queue.Arn
          batchSize: 1

修改后的Serverless配置

functions:
  func1:
    handler: src/func1/func1.handler
    events: []

  func2:
    handler: src/func2/func2.handler
    events:
      - s3:
          bucket: ${self:custom.bucketname}
          event: s3:ObjectCreated:*
          existing: true
      - sqs:
          arn: !GetAtt queue.Arn
          batchSize: 1

部署报错信息

Received response status [FAILED] from custom resource. Message returned: Configurations overlap. Configurations on the same bucket cannot share a common event type. See details in CloudWatch Log: ...

报错原因

S3桶不允许同一事件类型(如s3:ObjectCreated:*)同时绑定到多个Lambda函数。直接一次性部署修改后的配置时,部署流程会先尝试给func2添加S3触发器,此时func1的旧触发器尚未被删除,导致配置重叠冲突。

解决步骤

  • 分两次部署:先保持func1的events: []配置,注释掉func2的触发器配置,单独部署一次,确保func1的触发器完全移除;再恢复func2的触发器配置,执行第二次部署。
  • 手动预处理:先在AWS控制台删除func1对应的S3触发器,再直接部署修改后的完整配置,避免分步骤部署。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 15:37:33