gpt4 book ai didi

amazon-web-services - 如何在无服务器 lambda 应用程序上实现速率限制?

转载 作者:行者123 更新时间:2023-12-05 03:25:24 25 4
gpt4 key购买 nike

目前我有一个使用 lambda 和 API 网关的无服务器 API。

我要构建的下一个功能是使用 AWS Cognito 进行用户身份验证,然后对每个用户应用速率限制。

我该怎么做呢? API网关可以和cogito通信吗?

我读了in the AWS docs :

Per-client throttling limits are applied to clients that use API keys associated with your usage policy as client identifier.

但据我所知,这是指用于调用 lambda 的每个 x-api-key 的速率限制。

我真的不想为每个用户都创建一个新的 key ,因为一次发布的硬性限制为 10000 个。我更愿意使用 Cognito 用户池 key 。

我知道另一种方法是,构建一个自定义授权器,它将用户 ID 写入内存数据库,例如 Redis 或 ElastiCache,然后在每个请求上查询以计算用户最后一次发出请求的时间.

但是,我不太喜欢这种方法,因为它不像无服务器 API 那样可扩展,并且可能成为整个 API 的瓶颈。

每个人如何实现这样的速率限制?我错过了一些基本的东西吗?亚马逊有开箱即用的解决方案吗?

最佳答案

AWS API 网关更适合用于点对点连接的客户端凭据 oAuth 身份验证流程。它没有提供很多功能,例如基于用户的速率限制。您可以将 lambda authoriser 与 dynamodb 结合使用来存储用户限制和当前值,并根据用户提供速率限制。AWS API 网关没有提供基于用户的限制功能。

关于amazon-web-services - 如何在无服务器 lambda 应用程序上实现速率限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71998170/

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