具有自定义授权 lambda 的 AWS ApiGatewayV2 HTTP API

AWS ApiGatewayV2 HTTP API with custom authorization lambda

是否可以将自定义授权 lambda 与 ApiGatewayV2 用于 HTTP API? 我知道 WebSocket API 支持它,但似乎只支持 AWS 自己的 HTTP APIs JWT 授权方。有谁知道解决这个问题的聪明方法? 我问的原因是我需要验证不完全遵循 OAuth2 标准的第三方令牌(因此不能使用开箱即用的 JWT 授权方)。

编辑

这是现在添加到 HTTP API 网关的功能,更多信息可以在 Introducing IAM and Lambda authorizers for Amazon API Gateway HTTP APIs 公告中找到。

原创

遗憾的是,Lambda 自定义授权方尚未迁移到受 HTTP API 网关支持。

To build RESTful APIs, you can use either HTTP APIs or REST APIs from API Gateway. REST APIs offer a wide variety of features for building and managing RESTful APIs. HTTP APIs are up to 71% cheaper compared to REST APIs, but offer only API proxy functionality. HTTP APIs are optimized for performance—they offer the core functionality of API Gateway at a lower price.

以上引自 announcement 的内容表明这是目前 API 网关的轻量级版本。

可以使用 AWS ApiGatewayV2 HTTP API.

自定义授权方 lambda

目前对我来说(仍处于开发初期)我实际上有一个 V2 WEBSOCKET 一个 V2 HTTP API 使用相同的 lambda 进行身份验证,并且两个 APIs 使用另一个 lambda 进行路由处理——是的,只有 2 个 lambdas 处理两个 APIs.

有点乱,因为每个 API 类型都有不同的事件格式。

我首先创建了 WEBSOCKET API,并首先使用 OAUTH“client_credentials”和 JWT 获得了授权 lambda。

然后我添加了 HTTP API -- 但它确实需要专门声明(我使用 terraform)$default 阶段、部署、集成和带有 $default [=26= 的路由].该路由是绑定“CUSTOM”授权方的地方。这里的重点是使用 so-called“快速创建”V2 HTTP api 似乎不允许自定义授权方。