Возможно ли иметь в своем шлюзе API лямбда-авторизатор и лямбда-прокси? - PullRequest
0 голосов
/ 03 января 2019

Я перенаправляю вызовы на свой внутренний API, размещенный на AWS через API Gateway.Клиентские запросы включают в себя токен JWT, который проверяется лямбда-авторизатором, который генерирует политику IAM, которая затем кэшируется шлюзом API перед достижением конечных точек API.

Я хотел бы добавить еще одну лямбда-функцию для некоторой проверки по запросу, которая отделена от проверки токена jwt, выполняемой лямбда-авторизатором.Только в случае успешной проверки клиентские запросы будут переданы бэкэнду.Возможен ли такой сценарий?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Можно ли использовать шлюзы авторизатора и лямбда-прокси в шлюзе API?

Да, возможно, чтобы шлюз API связывал лямбда-авторизатор с лямбда-проксиНо, похоже, вы также хотите подключить прокси-сервер Lambda к отдельной Lambda.(Возможно, вы ищете «фильтры запросов» по ​​типу модель Spring .) API Gateway и Lambda не поддерживают эту структуру, как можно надеяться.

Если вы хотитереализовать разделение задач на уровне обслуживания, возможно, вы захотите изучить лямбда-лямбда-вызов .В модели, которую вы предлагаете, это будет выглядеть примерно так:

Gateway Authorizer λ -> Gateway Proxy λ (perform routing) -> "backend" λ

То, что вы покупаете, - это способность иметь собственную логику маршрутизации и проверки на уровне прокси.Тем не менее, я должен сделать следующее предупреждение:

  • Прокси-серверу Lambda нужно будет дождаться, пока бэкэнд-лямбда завершит обработку, чтобы вернуть результат обратно в шлюз, что означает, что вам по существу будет выставлен счетудваивается для каждого запроса (это упрощено, поскольку у вас могут быть разные размеры лямбды с разными тарифами, но вы меня поняли)
  • Вы переносите конфигурацию из консоли AWS в более управляемое решение.Это может не быть проблемой в вашем случае, но об этом следует помнить по мере роста вашего приложения, если масштабируемость вашего решения по маршрутизации становится узким местом

Одна из функций AWS Lambda, которой вы можете бытьинтересует это лямбда-слои .Это будет скорее разделение на уровне кода, чем разделение на уровне обслуживания, которое может быть или не быть достаточным в вашем случае.

На практике моя команда использовала API Gateway Authorizer только для решения AuthN (так какэто звучит как ты делаешь).Затем мы заставили каждую лямбду обрабатывать определенную входную проверку (параметры запроса, тела запроса и т. Д.) И обрабатывать AuthZ, запрашивая пользовательский сервис.

Надеюсь, это поможет.Удачи:).

0 голосов
/ 03 января 2019

Вы можете реализовать Запрос проверки на API-шлюзе, но он в основном используется для проверки того, что HTTP-вызов «действителен»;это означает, что заголовки присутствуют и не являются пустыми, а полезная нагрузка JSON соответствует модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...