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

使用Serverless Framework部署Lambda时如何解决‘lambda role already exists’错误?

解决Serverless Framework部署时“lambda role already exists”错误

错误原因

  • Serverless Framework默认会为每个服务生成IAM角色,命名规则为{service-name}-{stage}-{region}-lambdaRole。若AWS账户中已存在同名角色,就会触发该错误。
  • 常见场景:此前部署过同名服务但未完全清理资源,或手动创建过相同名称的IAM角色。

解决方法

方法1:删除已存在的同名角色

  1. 登录AWS控制台,进入IAM服务页面
  2. 左侧菜单选择“角色”,搜索Timezone-dev-us-east-1-lambdaRole(根据实际服务名、部署阶段、地区调整,默认阶段为dev,地区为us-east-1)
  3. 删除找到的对应角色后,重新执行serverless deploy

方法2:指定自定义角色

在serverless.yml的provider段添加自定义角色配置,规避命名冲突:

provider:
  name: aws
  runtime: python3.8
  role: my-custom-lambda-role # 自定义角色名,需确保该角色不存在或已配置好Lambda执行所需权限

注意:自定义角色需提前配置Lambda基础执行权限(如AWSLambdaBasicExecutionRole)及函数所需的其他权限。

方法3:清理旧部署资源

执行命令彻底移除之前的部署残留:

serverless remove

完成清理后重新部署即可。

补充提示

你的serverless.yml未指定stage和region,默认使用dev阶段与us-east-1地区,对应角色名称为Timezone-dev-us-east-1-lambdaRole,排查时可重点检索该名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 21:09:31