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

如何在template.yml中配置AWS Lambda函数间互相调用的权限

正确配置方案

你当前的配置逻辑方向是对的,只需要优化权限配置的写法避免硬编码错误即可,按以下步骤修改template.yml:

1 优化router函数的权限配置

推荐两种可选写法,优先选SAM内置策略的简化写法:

写法一:使用SAM内置托管策略(推荐,无需手动写权限声明)

直接在router的Policies节点下添加LambdaInvokePolicy,自动生成符合要求的权限:

router:
  Type: AWS::Serverless::Function
  Properties:
    # 其余原有配置保持不变
    Policies:
      # 新增这一行即可,不需要手动写Statement
      - LambdaInvokePolicy:
          FunctionName: !Ref helpSlashCommand
      # 原有DynamoDB权限、AWSLambdaBasicExecutionRole保持不变
      - Statement:
          Sid: DynamoDbAllowLambda
          Effect: Allow
          Action:
            - dynamodb:GetItem
          Resource: 'arn:aws:dynamodb:us-east-2:xxxxxxxxxxxxxxxx:table/waiting-room'
      - AWSLambdaBasicExecutionRole

写法二:手动写Statement,用动态ARN避免硬编码错误

如果你要保留手动写Statement的方式,把Resource的硬编码ARN替换为内置函数自动获取的目标Lambda ARN:

- Statement:
    Sid: LambdaAllowLambda
    Effect: Allow
    Action:
      - lambda:InvokeFunction
    Resource: !GetAtt helpSlashCommand.Arn

注意:lambda:InvokeAsync是旧版异步调用API的权限,你当前代码用的是invoke方法加InvocationType: Event的异步调用,只需要lambda:InvokeFunction权限即可,多余的权限可以移除。

2 部署验证

修改完成后重新部署SAM栈即可,新的权限会自动生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 22:57:00