В основе этого сервиса лежит классический паттерн программирования: внутреннее представление отделено от способа взаимодействовать с ним через прокси. Мы не афишируем нашу реализацию и отдаём наружу некий контракт.
Yandex API Gateway — важная часть serverless-экосистемы в Yandex Cloud. Он позволяет интегрировать компоненты микросервисного приложения и разрозненные API.
По своей сути Yandex API Gateway является управляемым RESTful API. Он находится между внешним пользователем и сервисами, которые обрабатывают запросы этого пользователя. Его основное преимущество — возможность свести в единую точку взаимодействие пользователей с ресурсами, которые расположены как в Yandex Cloud, так и на других серверах. Допустим, у вас есть три сущности:
- Файлы в Object Storage.
- Сайт на базе WordPress, развёрнутый на виртуальной машине.
- API, который реализован с помощью Cloud Functions.
API Gateway позволит организовать взаимодействие со всеми тремя ресурсами через обращение к одному домену с единым API. Без него вам бы пришлось самостоятельно разворачивать шлюз или обратный прокси-сервер и администрировать его.
Поскольку API Gateway работает по модели PaaS, он гарантирует доступность вашего API в соответствии с SLA. А ещё HTTP/HTTPS-запросы ваших пользователей будут выполнены вне зависимости от их количества.
Сервис принимает запросы по HTTPS через служебный поддомен apigw.yandexcloud.net
или через подключение к вашему домену через Certificate Manager, разбирает эти запросы и определяет их путь и параметры. Кроме того, он использует механизм сервисных аккаунтов для подключения к другим сервисам Yandex Cloud.
Созданный API-шлюз может обрабатывать запросы пятью разными способами:
- Автоматически формировать статический ответ на запрос. Ответ будет разным в зависимости от параметров запроса.
- Вызывать функцию, созданную в сервисе Yandex Cloud Functions, которая передаёт параметры запроса и возвращает результаты вызова в ответе.
- Обращаться к сервису Yandex Object Storage, чтобы раздавать статические файлы.
- Отправлять запрос на другой URL и формировать ответ как есть.
- Вызывать ноду DataSphere, развёрнутую в виде отдельного микросервиса.
Настройка шлюза для доступа к сервисам в облаке
Практика: https://practicum.yandex.ru/trainer/ycloud/lesson/a50c934d-8ca2-45af-acdb-092dc4bf154a/
Пример моих настроек для раздачи фронта:
📂 YandexCloud | Последнее изменение: 15.08.2024 13:26