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

如何在Serverless框架中修改provider级iamRoleStatements的角色名称?

保留provider级iamRoleStatements的同时修改Lambda角色名称

可以实现,只需在Serverless配置的provider块中添加角色名称的自定义配置,框架会自动把你定义的iamRoleStatements权限附加到这个指定名称的角色上,具体有两种常用配置方式:

1. 固定角色名称

直接在provider.iam.role.name中设置你想要的固定名称:

provider:
  name: aws
  ...
  iamRoleStatements:
    - Effect: Allow
      Action:
        - dynamodb:DescribeTable
        - dynamodb:Query
        - dynamodb:Scan
        - dynamodb:GetItem
        - dynamodb:PutItem
        - dynamodb:UpdateItem
        - dynamodb:DeleteItem
  iam:
    role:
      name: "my-custom-lambda-role" # 自定义固定角色名

2. 动态生成角色名称

如果需要像原生成逻辑那样包含环境、区域等动态变量,可使用CloudFormation内置函数来定义:

provider:
  name: aws
  ...
  iamRoleStatements:
    - Effect: Allow
      Action:
        - dynamodb:DescribeTable
        - dynamodb:Query
        - dynamodb:Scan
        - dynamodb:GetItem
        - dynamodb:PutItem
        - dynamodb:UpdateItem
        - dynamodb:DeleteItem
  iam:
    role:
      name:
        Fn::Join:
          - "-"
          - [ "my-custom-prefix", "${self:provider.stage}", { Ref: "AWS::Region" }, "lambda-role" ]

配置完成后,Serverless会创建你指定名称的IAM角色,同时自动将provider.iamRoleStatements中的权限策略绑定到该角色上,既保留了原有权限配置,又实现了角色名称的自定义。

内容的提问来源于stack exchange,提问作者Joey Yi Zhao

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 03:05:06