gpt4 book ai didi

amazon-web-services - 使用 API 网关和无服务器框架在 AWS Lambda 上超过了速率

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

当我尝试调用具有 HTTP 事件的方法时,它会导致 500 Internal server error .

在 CloudWatch 日志上,它显示 Recoverable error occurred (Rate Exceeded.)
当我尝试调用一个没有 lambda 的函数时,它会随着响应执行。

这是我的无服务器配置:

config

最佳答案

您已经设置了 Lambda 的 reservedConcurrency到 0。这将阻止您的 Lambda 被调用。当您的函数被调用时,将其设置为 0 通常很有用,但您不确定原因并想立即停止它。

如果要调用它,请更改 reservedConcurrency到一个正整数(默认情况下,它可以是一个 <= 1000 的正整数,但您可以通过联系 AWS 来增加此限制)或简单地删除 reservedConcurrency .yml 文件中的属性,因为它将使用默认值。

为什么要使用 reservedConcurrency无论如何?好吧,假设您的 Lambda 函数是由来自 API Gateway 的请求触发的。假设您每秒收到 400 个(高峰时间)请求,并且在每次请求时,都会触发另外两个 Lambda 函数,一个用于为给定图像生成缩略图,另一个用于在 DynamoDB 中插入一些元数据。理论上,您将有 1200 个同时运行的 Lambda 函数(假设您的所有 Lambda 函数都在不到一秒的时间内完成它们的执行)。这会导致限制,因为 Lambda 函数的默认并发执行是 1000。但是缩略图生成是否与来自 API Gateway 的请求一样重要?很可能不是,因为它自然是最终一致的任务,因此您可以设置 reservedConcurrency在缩略图 Lambda 上只有 200,所以你不会用完你的并发,这意味着其他函数将能够在给定的时间点做一些更有用的事情(在我们的例子中,接收 HTTP 请求比生成缩略图)。剩下的 800 个并发可以在 API Gateway 触发的函数和将数据插入 DynamoDB 的函数之间拆分,从而防止对重要内容进行节流并保持不那么重要的内容最终保持一致。

关于amazon-web-services - 使用 API 网关和无服务器框架在 AWS Lambda 上超过了速率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55161871/

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