AWS API Gateway - регулирование запросов на основе минут (а), а не секунд. - PullRequest
0 голосов
/ 17 сентября 2018

Хотелось бы узнать, удалось ли кому-нибудь обойти эту проблему;

  • Я могу подтвердить, что AWS подтвердил, что в настоящее время эта функция отсутствует, и вряд ли будет присутствовать в ближайших планах на будущее.

AWS API Gateway имеет текущую функциональность Method Throttling, которая позволяет регулировать все запросы метода как;

  • X запросов в секунду .

Я хотел бы найти способ регулирования запросов на X запросов в Y минут .

Другими словами и служить примером;

Я бы хотел, чтобы мой метод был доступен раз в 5 минут.

Вещи, которые я уже знаю, и не вариант:

  • Мы можем сделать это через инфраструктуру
  • Мы можем сделать это с помощью манипуляции с запросом (добавить пользовательские заголовки)
  • Мы можем использовать план использования, добавлять в него API-ключи и назначать ему планы использования (нет смысла)

Итак, в идеале - мы бы хотели что-то вроде этого:

enter image description here

У кого-нибудь были какие-нибудь способы сделать что-то подобное?

Или это желаемое за действительное и что-то, чего мне нужно ждать в AWS?

1 Ответ

0 голосов
/ 17 сентября 2018

Я думаю, что вам может понадобиться включить кэширование на вашем API-шлюзе и установить TTL равным 600 (5 минут).Затем пользователь может использовать ваш API столько раз, сколько он хочет, в пределах заданной им квоты, но он действительно не сможет запрашивать новые данные в течение 5 минут, так как срок действия TTL должен истечь первым.Тем не менее, предполагается, что ваш метод является методом GET - может быть, вы можете просто изменить его на GET, если нет?

Если это не соответствует вашим потребностям, вам, к сожалению, придется использовать эту логику для управленияВы уже заявили в своем вопросе.На самом деле это очень необычно для того, что вы хотите сделать (я не говорю, что это неверно), но сдерживание пользователей тем, что они могут делать запрос каждые 5 минут, является чрезвычайно медленным и, вероятно, очень необычным.Чаще всего значение доступно для многих запросов, но обновляется каждые несколько минут с использованием метода TTL.

Имейте в виду, что целью регулирования является защита ваших служб от слишком большой нагрузки или атаки DDos.и т. д. Если у вас есть части вашего приложения, у которых есть рабочие процессы, в которых их бизнес-логика требует, чтобы пользователи выполняли действия не чаще, чем раз в 5 минут, это должно находиться в области управления рабочими процессами вашего приложения, например:в менеджере бизнес-процессов BPM или, если вы хотите использовать AWS, вы можете использовать SWF или пошаговые функции.Причина в том, что бизнес-логику не следует вводить в вашу инфраструктуру, по крайней мере, IMO.

...