在使用云功能时,您如何尊重api限制?

时间:2017-12-30 22:38:08

标签: node.js aws-lambda publish-subscribe google-cloud-functions

我看到两个选项......

云功能连接到一些数据库,跟踪最后的呼叫和呼叫的数量。

或者...

正在调用并且是永久性的东西,构建队列并适当地调用。

我真的不确定pub / sub系统如何适用于第二选项。由于函数可以被任何地方调用,这是否意味着我必须跟踪数据库中的所有位置,这听起来不对,对于每个api调用,我必须创建api管理器,会将元数据存储在db中吗?听起来有点矫枉过正。

2 个答案:

答案 0 :(得分:1)

重试受限制的API调用,API网关将响应429个太多请求,您可以使用requestretry等模块或自行完成:Error Retries and Exponential Backoff in AWS

答案 1 :(得分:0)

您的代码应该处理API限制。

例如,对于每秒请求数,您需要限制代码,以便每秒触发的次数超过X次 - 请参阅lodash throttle

要尊重每天最大请求数,您可能希望缓存请求,以便相同的请求将使用较早的响应

您无法保证您的代码不会突破限制,但您可以帮助它最大程度地降低违反限制的可能性

您可能还想添加恶意活动检测,以便在用户遇到服务器时,尝试杀死服务器以阻止用户。

所有这些都会有所帮助,但最终如果您的服务器太忙,您可能需要付费才能增加或删除限制。