使用 Cognito Authorizer 时为每个请求调用的 AWS Api Gateway 自定义触发器或拦截器

问题描述

我有一个 AWS API 网关,它有许多端点,所有端点都通过基于 Cognito 的授权方进行授权。所以 Cognito 正在为我生成所有 JWT 令牌,我正在使用这个 Cognito 授权器来验证我的端点。

我需要一种方法,让 Lambda 充当每个请求(至少是用户登录调用的所有请求)的拦截器,以在进一步处理 Lambda 之前允许/拒绝请求代理到(调用到)API 网关。

我尝试了 Cognito 提供的触发器,但对我不起作用。

解决方法

您可以在 API 网关前面有一个 CloudFront 分配,并将 CloudFront 分配与 Lambda@Edge 函数相关联。 CloudFront 在 CloudFront 边缘站点拦截请求和响应。

Customizing at the edge with Lambda@Edge