我想将自定义授权者附加到 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 网关吗?