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

AWS AppSync Lambda Authorizer SAM部署后未触发调用问题咨询

根因定位

你缺失的配置是针对特定AppSync API的Lambda调用权限绑定:
你当前仅在Lambda部署栈中配置了面向所有AppSync服务的通用调用权限,AWS现阶段出于安全限制,该类通用权限已无法支持Lambda授权器的调用校验。你在控制台手动重新保存Lambda ARN时,后台会自动为当前操作的AppSync API在Lambda的资源策略中追加专属调用权限,因此功能会恢复正常。

解决方案

你需要在部署AppSync的CloudFormation/SAM栈中新增AWS::Lambda::Permission资源,将调用权限与你创建的AppSync API明确绑定,示例配置如下:

Resources:
  # 你原有AppSync API的定义,此处仅为示例,请保留你原有配置
  AppSyncGraphQLApi:
    Type: AWS::AppSync::GraphQLApi
    Properties:
      Name: <你的API名称>
      AdditionalAuthenticationProviders:
        - LambdaAuthorizerConfig:
            AuthorizerUri: !Ref <你从SSM拉取的Lambda ARN参数>
            IdentityValidationExpression: ^Bearer .*$ # 按你的header规则配置
          AuthenticationType: AWS_LAMBDA
      # 其他原有配置保持不变
      ...

  # 新增的专属调用权限配置
  AppSyncLambdaAuthorizerPermission:
    Type: AWS::Lambda::Permission
    Properties:
      FunctionName: !Ref <你从SSM拉取的Lambda ARN参数>
      Action: lambda:InvokeFunction
      Principal: appsync.amazonaws.com
      SourceArn: !GetAtt AppSyncGraphQLApi.Arn

补充注意事项

  1. 你原Lambda栈中定义的通用LambdaPermission可以删除,避免权限过宽
  2. 如果Lambda和AppSync归属不同AWS账号,还需要额外在AppSync侧配置允许调用该Lambda的IAM权限
  3. 请确认LambdaAuthorizerConfig中的IdentityValidationExpression正则规则与你传入的authorization header格式匹配,不符合的请求会被AppSync直接拦截返回BadRequestException,不会触发Lambda调用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:36:06