Я хотел бы знать, удалось ли кому-нибудь обойти эту проблему;
AWS API Gateway имеет текущую функциональность Method Throttling, которая позволяет регулировать все запросы методов как;
Я хотел бы найти способ ограничить количество запросов на X запросов за Y минут.
Другими словами и служить примером;
Я бы хотел, чтобы мой метод был доступен раз в 5 мин.
То, что я уже знаю, но не вариант:
Итак, в идеале - нам нужно что-то вроде этого:
У кого-нибудь были способы сделать что-то подобное?
Или это принятие желаемого за действительное, и мне придется ждать в AWS?
Я не уверен, что это не лучшая идея, особенно для тех, кто хочет ограничивать конечные точки метода на основе менее одной секунды (0,03 запроса в секунду) или, в идеале, как уже упоминалось, изменить время на мин (для более выразительного регулирования).





Я думаю, что вам может быть нужно включить кеширование на вашем API-шлюзе и установить TTL равным 600 (5 минут). Затем пользователь может использовать ваш API столько раз, сколько он хочет в пределах своей квоты, но на самом деле он не сможет запрашивать новые данные в течение 5 минут, потому что сначала должен истечь TTL. Предполагается, что ваш метод является методом GET - может быть, вы можете просто изменить его на GET, если нет?
Если это не соответствует вашим потребностям, вам, к сожалению, придется довести эту логику до вас, чтобы управлять, как вы уже указали в своем вопросе. На самом деле, то, что вы хотите сделать, очень необычно (я не говорю, что это недопустимо), но ограничение пользователей, чтобы они могли делать запросы только каждые 5 минут, очень медленно и, вероятно, очень редко. Было бы более распространено иметь значение, доступное для многих запросов, но обновляющееся только каждые несколько минут с использованием метода TTL.
Имейте в виду, что цель дросселирования - защитить ваши службы от слишком большой нагрузки или DDos-атак и т. д. сидите в области управления рабочим процессом вашего приложения, например, в BPM - диспетчере бизнес-процессов, или, если вы хотите перейти на AWS, вы можете использовать SWF или Step Functions. Причина в том, что бизнес-логику не следует включать в вашу инфраструктуру, по крайней мере, IMO.
Отличное предложение - попробую.
Ваш вопрос - плохая идея, потому что он вводит менее известный стандарт и вводит в заблуждение разработчиков, которые предполагают, что вы работаете за считанные секунды, как и все остальные.