无服务器框架AWS ApiGateway v2授权器

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

我想根据这个来设置简单的授权器。文档. 同时使用无服务器插件 无服务器伪参数.

我对authorizer的无服务器配置。

provider:
...
  logs:
    httpApi: true
  httpApi:
    cors: true
    authorizers:
      simpleAuthorizer:
        identitySource: $request.header.Authorization
        issuerUrl:
          - Fn::Join:
              - '/'
              - - https://cognito-idp.#{AWS::Region}.amazonaws.com
                - "#{CognitoUserPool}"
        audience:
          - "#CognitoUserPoolClient"

我对简单lambda的配置:

functions:
  ping:
    name: ${self:provider.stage}-ping
    handler: test.handler
    events:
      - httpApi:
          method: GET
          path: /test
          authorizer:
            name: simpleAuthorizer

我对用户池和用户池客户端的配置:

resources:
  Resources:
    CognitoUserPool:
      Type: AWS::Cognito::UserPool
      Properties:
        UserPoolName: ${self:service}-${self:provider.stage}-user
        UsernameAttributes:
          - email
        Policies:
          PasswordPolicy:
            MinimumLength: 6
            RequireLowercase: False
            RequireNumbers: True
            RequireSymbols: False
            RequireUppercase: True
        Schema:
          - Name: email
            Required: false
            DeveloperOnlyAttribute: false
            Mutable: true
            AttributeDataType: String

    CognitoUserPoolClient:
      Type: AWS::Cognito::UserPoolClient
      Properties:
        ClientName: cognito-example-client
        GenerateSecret: False
        UserPoolId: "#{CognitoUserPool}"

用户池,用户池客户端,HTTP API,lambda成功创建。但我在AWS控制台看不到API Gateway服务的授权者。

amazon-web-services aws-api-gateway amazon-cognito serverless-framework
1个回答
0
投票

所以,这个问题的解决方法很简单:只要更新你的serverless(我用的是1.63.0,它给了我这个问题)。

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