将 AWS API Gateway 自定义授权方附加到路由

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

我想将自定义授权者附加到 API 网关路由。

API 网关和自定义授权者与整个基础设施一起使用 Terraform 进行部署。

现在我想部署一些 Lambda 函数作为我的 API 网关的路由。

我首先尝试使用无服务器框架部署 Lambda 函数,但显然不可能附加预先存在的授权方。

在文档中他们展示了这个示例:

provider:
  name: aws
  httpApi:
    authorizers:
      customAuthorizer:
        type: request
        functionArn: arn:aws:lambda:us-east-1:11111111111:function:external-authorizer
 
functions:
  hello:
    handler: handler.hello
    events:
      - httpApi:
          method: get
          path: /hello
          authorizer:
            name: customAuthorizer

但这将创建一个新的 API 网关。

所以我添加了网关的ID。

provider:
  name: aws
  httpApi:
    id: xxxxxx

但后来我得到:

Error:
Cannot setup authorizers for externally configured HTTP API

显然无服务器不允许为预先存在的 HTTP API 网关设置授权者。

所以我决定使用 AWS CLI。

我跑步:

aws apigatewayv2 update-route --api-id <gateway-id> --route-id <route-id> --authorizer-id <authorizer-id> --authorization-type custom

但在这里我收到错误:

An error occurred (BadRequestException) when calling the UpdateRoute operation: Unable to update route. Authorizer type is invalid or null.

尽管 ID 正确且指向授权者,但仍发生事件。

最后一个问题

有人知道如何将自定义授权者附加到 API 网关中的路由,其中已经部署了授权者和 API 网关吗?

aws-api-gateway lambda-authorizer aws-api-gateway-v2
© www.soinside.com 2019 - 2024. All rights reserved.