Облачная платформаEvolution

Шлюз и шаблон шлюза


Шлюз API

Интерфейс взаимодействия, который служит посредником между клиентом и API-интерфейсом группы сервисов. Выполняет маршрутизацию запросов по протоколам HTTP, HTTPs (HTTP-трафик) с поддержкой технологии gRPC и gRPCs (gRPC-трафик) и доставку данных сервисов.

Назначения шлюза:

  • Выступать в качестве единой точки входа и стандартизированного процесса взаимодействия между различными сервисами организации в рамках одного сценария использования.

  • Выполнять функцию прослойки между API и базовой инфраструктурой.

  • Поддерживать и управлять использованием API, в том числе авторизацией, ограничением числа запросов в единицу времени и другими функциями.

  • Маршрутизировать запросы к заданному бэкенду.

Шлюз API является логическим контейнером для правил. Все добавленные правила реализуют перенаправление запросов, отправленных на адрес шлюза API.

Системный сетевой адрес шлюза генерируется автоматически при создании шлюза. Также для шлюза можно задать пользовательский адрес (домен).

Shared API Gateway использует один общий публичный IP-адрес для любого числа шлюзов и подключений в проекте.

Шаблон шлюза

Шаблон шлюза — готовый набор параметров правил и бэкендов для быстрого создания шлюза с необходимыми свойствами в пользовательском интерфейсе.

Шлюз создается на основе шаблона, который соответствует назначению шлюза:

  • Обратный прокси — для трансляции клиентских запросов, направленных на публичный хост, на бэкенды (адреса сервисов), скрытые от клиента. Используется, чтобы сбалансировать нагрузку на бэкенды и скрыть путь для обращения к сервису на целевом бэкенде от внешних потребителей.

  • Mock-сервер — для создания имитации API-шлюза с заданными ответами без обращения к целевому бэкенду.

  • OpenAPI — для загрузки OpenAPI-спецификации шлюза в формате YAML или JSON.

  • Container Apps — для перенаправления HTTP-запросов к контейнерному приложению или группе контейнерных приложений (Container Service), созданных в сервисе Container Apps.

  • AI-плагин — для оркестрации AI-трафика, ограничения числа токенов и содержания запросов к моделям.

Подсказка

Шаблон шлюза можно использовать вариативно, в сочетании с дополнительными правилами и бэкендами. Шаблон не ограничивает виды правил и бэкендов, которые можно добавить шлюзу.

URI для проксирования

URI для проксирования — идентификатор ресурса в адресе шлюза, который используется для маршрутизации входящих запросов.

Пример:

  • Адрес шлюза: https://9cd8da9051.apigw.cloud.ru

  • URI для проксирования: /service1

Для отправки запросов к бэкенду через шлюз будет использоваться адрес https://9cd8da9051.apigw.cloud.ru/service1.

В значении URI для проксирования можно использовать wildcard-символ (*) для обозначения произвольной части пути.

Пример для URI для проксирования:

  • при добавлении URI /foo* (для обращения по HTTP) правилом будут обработаны запросы на /foo/, /foo/a, /foo/b и так далее;

  • при добавлении URI /package.service/* (для обращения по GRPC) правилом будут обработаны запросы на /package.service/SayHello, /package.service/PostArticle и так далее.

URI для проксирования указывается при создании шлюза или создании правила.