【问题标题】:Serverless - Setting the authorization type to CUSTOM or COGNITO_USER_POOLS requires a valid authorizer无服务器 - 将授权类型设置为 CUSTOM 或 COGNITO_USER_POOLS 需要有效的授权人
【发布时间】:2019-03-13 17:35:35
【问题描述】:

在 API 网关端点上附加自定义授权方时遇到问题。这是我的场景步骤:

  1. 创建自定义授权方(使用 lambda 函数)。
  2. 创建集成类型为 HTTP 的新端点。
  3. 将 AuthorizationType 设置为 CUSTOM

如何将自定义授权方附加到无服务器 yaml 上?

  • 我尝试使用 AuthorizerId,收到错误“ProxyMethod - 指定的授权人 ID 无效。将授权类型设置为 CUSTOM 或 COGNITO_USER_POOLS 需要有效的授权人。”
  • 我没有在serverless documentation 上找到上述场景的示例代码
  • 我尝试关注AWS docs。它解释了使用 AuthorizerId,但不确定 serverless 是否支持它。

有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: amazon-web-services aws-api-gateway serverless


    【解决方案1】:

    您应该首先创建授权人。您将获得一个可在您的配置中使用的授权人 ID。

    Resources:
        authorizer:
          Type: AWS::ApiGateway::Authorizer
          Properties: 
            AuthorizerResultTtlInSeconds: 0
            AuthorizerUri: !Join
              - ''
              - - 'arn:aws:apigateway:'
                - '{region}'
                - ':lambda:path/2015-03-31/functions/'
                - 'arn:aws:lambda:{region}:'
                - Ref: AWS::AccountId
                - ':function:customAuthorizer'
                - '/invocations'
            Name: authorizer
            RestApiId: {restApiId}
      
    
    Outputs:
        authorizerId:
          Description: "API Gateway Auth Id"
          Value: !Ref authorizer
          Export:
            Name: !Join
              - '-'
              - - !Ref AWS::StackName
                - AuthorizerId
    

    【讨论】:

      猜你喜欢
      • 2020-02-05
      • 1970-01-01
      • 2017-02-06
      • 2017-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-31
      • 2017-08-09
      相关资源
      最近更新 更多