Стратегия использования Kong API - PullRequest
0 голосов
/ 03 апреля 2019

Я хочу использовать Kong в качестве шлюза API для всех моих вышестоящих сервисов.И я хочу использовать API-ключи, чтобы мои клиенты могли использовать его для использования некоторых API-интерфейсов, которые им разрешено использовать.

Существует плагин для управления API-ключами: https://docs.konghq.com/hub/kong-inc/key-auth/

Но яМне интересно, могу ли я добавить свойства к некоторому ключу API или связать его с какой-то конфигурацией.

Позвольте мне объяснить на примере:

У меня есть 3 apis

  • API 1
  • API 2
  • API 3

На Kong API Gateway я хочу использовать ограничение скорости.Поэтому я хочу сгенерировать ключи API для 2 клиентов с некоторыми свойствами:

  • customer X: базовая подписка с ограничением скорости 10 запросов в минуту для API 1 и 20 запросов в минуту для API2
  • customer Y: премиум-подписка на API 2 с ограничением скорости 5000 запросов в минуту и ​​1000 запросов в минуту для API 3

Итак, в Конге я создаю3 сервиса для этих 3 API и добавьте к этому плагин ограничения скорости.Есть ли способ сообщить плагину ограничения скорости (основываясь на ключе API, отправляемом в запросе), какой лимит он должен использовать для только что введенного запроса?

Мне кажется, что янеобходимо создавать новые сервисы для одних и тех же API каждый раз с определенным ограничением скорости с определенным значением.Это кажется немного неуправляемым при работе с большим количеством клиентов и API.

Возможно ли получить предельное значение скорости на основе ключа API, который передается через?

Или естьрешение сделать так?Или это фактическое поведение, которое мы хотим в шлюзе API, если да, то почему?

1 Ответ

0 голосов
/ 03 июля 2019

Kong Enterprise Edition имеет плагин ' Ограничение скорости расширенный ', который решает эту проблему.Он позволяет вам указать «идентификатор» для каждого плагина ограничения скорости, а для этого конкретного случая вы будете использовать «идентификатор: потребитель».Если вам нужны два разных ограничения скорости для одного и того же API и разных потребителей, например,

  • API2: потребительX имеет 20 об / мин
  • API2: потребитель Y имеет 5000 об / мин

тогда вы должны настроить ограничение скорости на потребителе, а не на API.Также в своем вопросе вы ссылаетесь на apis;FYI api объекты устарели начиная с v0.13.0, и вы должны перейти к route/service объектам.

...