是否有类似于“rest api gw usage plans”(REST API网关使用计划)的解决方案适用于HTTP API网关?

0

【以下的问题经过翻译处理】 你好,阅读了以下文章之后:

https://aws.amazon.com/blogs/architecture/throttling-a-tiered-multi-tenant-rest-api-at-scale-using-api-gateway-part-1/

https://aws.amazon.com/blogs/architecture/throttling-a-tiered-multi-tenant-rest-api-at-scale-using-api-gateway-part-2/

我想知道如果我们想在HTTP API网关上应用相同的解决方案,而HTTP API网关不提供使用计划功能,我们应该怎么做。

正如文章中所提到的:

“我们将我们的讨论范围限制在REST API上,因为API Gateway支持的其他协议 - WebSocket API和HTTP API - 具有不使用使用计划或API密钥的不同限流机制。”

一些注释以便更好地理解问题:

我们的主要目标是实现每个客户的HTTP API速率限制。 我正在寻找一个解决方案,不包括迁移到REST API网关(如果我迁移,我将采用附加文章中的解决方案)。 如果这有助于提出一个好的解决方案,我们的HTTP API网关包装在一个CloudFront分发中(我们过去这样做是为了在这个API上应用WAF,它不支持WAF的开箱即用)。 谢谢!

profile picture
EXPERTE
gefragt vor 6 Monaten35 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 你说得对,HTTP API不提供使用计划,而REST API类型却提供了。

你需要自己来处理这个问题。我建议从内置的使用模型中获得灵感,并为你的API构建相似的模型。你可以将每个客户的限制存储在数据库中(例如 DynamoDB)。

然后,每次调用API时,你都要检查客户的速率限制是否已经超过,如果是,API会返回一个4xx错误。

如果限制仍然在阈值以下,就会增加限制计数器。

你可以以不同的方式实现这些检查,例如Lambda@Edge,或者由一个步函数支持的API网关,具有执行检查和计数器增量的Lambda步骤。

希望这些想法能给你一些启发。

profile picture
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen