AWS API Gateway 的 SAM 中的授权设置

问题描述 投票:0回答:2

尝试通过附加的 Lambda 授权程序通过 SAM 部署 API。部署后,将在“Authorizers”下的 API 上成功创建授权者,但是尽管可以在下拉列表中选择授权者,但资源上的授权设置仍设置为“无”。

资源的授权设置设置为NONE

在授权者下创建授权者

Resources:
  PlatformApiGateway:
    Type: AWS::Serverless::Api
    Properties:
      Name: API Gateway name
      StageName: !Sub ${Environment}
      Auth:
        Authorizers:
          LambdaTokenAuthorizer:
            FunctionArn: FunctionArn Name
      DefinitionBody:
        'Fn::Transform':
          Name: 'AWS::Include'
          Parameters:
            Location: !Sub s3://${OpenApiLocation}

  
  PlatformApiAuthorizer:
    Type: AWS::ApiGateway::Authorizer
    Properties:
      AuthorizerUri: AuthorizerUri
      IdentitySource: method.request.header.auth
      Name: AuthorizerName
      RestApiId: !Ref PlatformApiGateway
      Type: TOKEN

APIAuth 属性似乎是这些设置的位置,但是以下文档不包含设置此授权设置的属性

https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html

https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apiauth.html

我的 API 定义中缺少哪些 SAM 属性才能让相关授权者设置该设置?

谢谢。

amazon-web-services authorization aws-api-gateway aws-sam
2个回答
0
投票

粘贴为 API 提供授权的 lambda ARN。

函数Arn:

FunctionArn Name

LambdaTokenAuthorizer 中检查 FunctionArn。

很高兴将 Cloudformation 输出的资源问题列表粘贴到其中。


0
投票

您可以在这里找到完整示例https://github.com/Willis0826/sam-local-authorizer-example/tree/master/rest-apis

按照 README 中的说明操作,您应该能够在本地验证模板并轻松部署到 AWS。

© www.soinside.com 2019 - 2024. All rights reserved.