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

如何在AWS SAM模板(CloudFormation栈)中引用Lambda自动创建角色?

引用SAM自动创建的Lambda角色的两种方法

方法一:直接引用自动生成的角色

当AWS SAM自动为你的Lambda函数创建IAM角色时,不需要额外定义角色,直接通过!GetAtt函数就能获取这个角色的ARN,语法如下:

Role: !GetAtt notesFunction.Role

这里的notesFunction就是你模板中定义的Lambda资源名称,Role是SAM的AWS::Serverless::Function资源暴露的内置属性,返回值就是部署时自动创建的IAM角色的ARN。

方法二:显式定义IAM角色(更可控)

如果希望更清晰地管理角色权限,或者需要在其他资源中频繁引用角色,建议手动定义IAM角色,再让Lambda关联这个角色:

  1. 在模板的Resources部分添加角色定义:
NotesFunctionRole:
  Type: AWS::IAM::Role
  Properties:
    AssumeRolePolicyDocument:
      Version: '2012-10-17'
      Statement:
        - Effect: Allow
          Principal:
            Service: lambda.amazonaws.com
          Action: sts:AssumeRole
    ManagedPolicyArns:
      - arn:aws:iam::aws:policy/AmazonDynamoDBFullAccess
    # 可根据需求添加自定义权限策略
  1. 修改Lambda的配置,指定使用这个显式定义的角色:
notesFunction:
  Type: AWS::Serverless::Function
  Properties:
    # 保留原有其他属性
    Role: !Ref NotesFunctionRole
    # ...

之后在需要引用角色的地方,直接用!Ref NotesFunctionRole即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 23:40:33