我想知道是否有人设法解决了这个问题;
AWS API网关具有当前的Method Throttling
功能,可让您按以下方式限制所有方法请求;
我想找到一种方法来限制每Y分钟X个请求。
换句话说,作为一个例子;
我希望每5分钟访问一次我的方法。
我已经知道的事情,不是一种选择:
所以,理想情况下-我们想要这样的东西:
任何人都有办法完成这样的事情吗?
这是否是一厢情愿的事情,我需要继续等待AWS?
答案 0 :(得分:2)
我想您可能要在API网关上启用缓存并将TTL设置为600(5分钟)。然后,用户可以在给定的配额内多次尝试访问您的API,但由于TTL需要首先失效,因此他们实际上将无法在5分钟内请求新数据。但这是假设您的方法是GET方法-也许您可以将其更改为GET?
如果这不适合您的需求,那么您很可能需要按照您在问题中已经陈述的那样,将此逻辑推给您进行管理。实际上,您要执行的操作非常罕见(我并不是说这是无效的),但是限制用户只能每5分钟发出一次请求非常缓慢,并且可能非常罕见。具有许多请求可访问的值,但使用TTL方法仅每隔几分钟更新一次的值会更常见。
请记住,限制的目的是保护您的服务免受过多的负载或DDos攻击等。如果您的应用程序的某些部分的工作流是业务逻辑,仅需要用户最多每5分钟执行一次操作,这应该放在应用程序的工作流管理区域中,例如BPM-业务流程管理器中,或者如果您想使用AWS,则可以使用SWF或Step Functions。原因是至少不应该将业务逻辑放入您的基础架构中。