首页 > 解决方案 > 我们可以通过 IP 限制具有 lambda 函数的 API 网关吗?

问题描述

我想使用节流阀限制 IP 每秒 100 个请求。是否有可能做到这一点?

标签: amazon-web-servicesaws-lambdaaws-api-gateway

解决方案


由于 API 网关首先被触发并且它在您的主要 lambda 之前触发,因此您无法从 lambda 本身控制网关。

但是,API Gateway 有一个自定义授权器(Lambda 授权器),如果启用它会首先触发,一旦执行,请求就会传递给主 lambda。

您可以在 lambda 中编写限制代码,并将该 lambda 作为自定义授权方附加到 API Gateway。此 lambda 现在可以根据您的限制逻辑批准或拒绝请求。

https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html

但是,更直接的解决方案是使用 AWS WAF,您可以使用它直接配置基于 IP 的限制规则。

https://support.stackpath.com/hc/en-us/articles/360001380266-Create-a-Rate-Limit-Rule-with-the-WAF


推荐阅读