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

Serverless部署prod环境失败:Lambda及LogGroup资源未找到求助

Serverless 生产环境部署报错解决方案

问题现象

开发环境(dev)部署正常,但生产环境(prod)部署时出现两类错误:

  1. 初始报错:Lambda函数找不到
Error:
UPDATE_FAILED: FilterOptionLambdaFunction (AWS::Lambda::Function)
Resource handler returned message: "Lambda function xxxxxxx-api-prod-xxxxxx could not be found" (RequestToken: ee621797-de45-aa3f-118b-8f512d4a5f62, HandlerErrorCode: NotFound)
  1. 仅保留api函数部署时,IAM角色关联日志组失败:
Error:
UPDATE_FAILED: EnterpriseLogAccessIamRole (AWS::IAM::Role)
Unable to retrieve Arn attribute for AWS::Logs::LogGroup, with error message Resource of type 'AWS::Logs::LogGroup' with identifier '{"/properties/LogGroupName":"/aws/lambda/xxxxx-api-prod-api"}' was not found.

问题根因

从提供的serverless.yml配置来看,核心问题在于:

  • 大量Lambda函数配置不完整:比如SyncAlikhsanSB2、FilterOption等仅定义了函数名,缺少handler等必填配置项。开发环境可能因历史部署记录或框架容错未触发错误,但生产环境部署逻辑更严格,导致资源创建失败后连锁触发后续关联错误。
  • 日志组依赖失效:Serverless框架默认会为Lambda自动创建日志组,当函数创建失败时,IAM角色尝试关联不存在的日志组Arn,就会引发报错。

修复步骤

1. 补全或清理不完整的函数配置

  • 对需要保留的函数,必须补充handler等核心配置,示例:
SyncAlikhsanSB2:
  handler: handlers/syncAlikhsanSB2.handler
  # 按需添加memorySize、timeout、events等配置
  • 暂时不需要的函数,直接删除或用#注释(确保YAML语法合法)。

2. 修正YAML语法错误

当前配置中多个函数仅写了名称和冒号,无后续配置,属于语法不完整。确保所有函数要么有完整配置块,要么被移除/注释。

3. 清理生产环境残留资源(可选)

如果之前的失败部署留下了残缺资源(如半创建的IAM角色、无效的Lambda关联记录),可登录AWS控制台:

  • 删除prod环境下相关的Lambda函数、IAM角色、日志组。
  • 重新执行serverless deploy --stage prod。

4. 手动指定日志组配置(可选)

若需控制日志组创建逻辑,可在provider级别添加日志配置,避免自动创建的依赖问题:

provider:
  # 其他配置不变
  logs:
    lambda:
      enabled: true
      retentionInDays: 30

验证

修正配置后,重新执行部署命令,检查AWS控制台确认Lambda、IAM角色、日志组均正常创建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 05:16:23