gpt4 book ai didi

aws-lambda - 如何限制特定 API 网关路由的负载大小

转载 作者:行者123 更新时间:2023-12-04 17:34:10 24 4
gpt4 key购买 nike

我目前有一个由对 API 网关路由发出的请求触发的 lambda,我研究了如何为该路由设置负载限制(例如 2kb)。我的目标是保证我的 lambda 永远不会收到需要处理的大量输入,因此它的执行时间会很短且成本很低。

我发现 AWS API Gateway 的默认负载限制是 10 MB,而 AWS Lambda 的默认限制是 6 MB。两者都不能增加。

但是,我没有找到任何关于如何减少它的文档或讨论。是否可以?我应该使用任何其他 AWS 服务作为 API 网关和我的 lambda 之间的中间件来限制接收到的输入吗?或者我应该用另一种方法解决它?

最佳答案

AWS API Gateway 不具备您所描述的功能。

您所描述的我认为是 WAF 功能,而 AWS WAF 确实具有此功能。

https://docs.aws.amazon.com/waf/latest/developerguide/web-acl-size-conditions.html

我对添加以下内容犹豫不决,因为它完全是对工具集的误用,但是......

仅使用 API 网关来限制有效负载大小的肮脏且可能不精确的方法是使用集成响应中的正文映射模板中的 IF 语句检查传入请求正文的长度,如果它超过了一定长度,忽略它。

假设 Content-Type 是 application/json 的例子:

#set($allParams = $input.params())
{
#if ($input.body.length() < 5000)
"request" : $input.json('$')
#else
"request" : null
#end
}

5000 只是一个任意数字,我没有计算过。

这样做仍然会导致您的 Lambda 函数被调用,即使负载很大(很长),并且 Lambda 需要能够处理一个空请求,但它永远不会收到更多的请求超过 5000 个字符。

关于aws-lambda - 如何限制特定 API 网关路由的负载大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57333870/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com