Разделы

Serverless API-шлюз

Публикуйте HTTP-эндпоинты и вебхуки на шлюзе: параметры пути, режимы авторизации, лимиты запросов и, при необходимости, собственные домены — всё завершается на ваших serverless-функциях.

Serverless API-шлюз публикует ваши функции как HTTP-эндпоинты. Запросы к /gw/{tenant}/your-path маршрутизируются к вашим функциям.

Как работает маршрутизация API-шлюза

Откройте раздел Gateway в сайдбаре, чтобы настраивать маршруты, методы, авторизацию и шаблоны. API рабочего пространства по умолчанию доступен по адресу /gw/<slug-арендатора>/…, где slug-арендатора — идентификатор вашего рабочего пространства. Именованные HTTP API (у каждого своя метка хоста субдомена) доступны по адресу /gw/<метка>/…, поэтому в одном рабочем пространстве может работать несколько API.

В установках с поддержкой собственных доменов можно привязать имя хоста к именованному HTTP API, чтобы публичный трафик не был обязан идти через префикс /gw/… по умолчанию.

Конфигурация маршрутов API gateway

  • Параметры пути/users/:id соответствует /users/42.
  • Wildcards/site/** соответствует любому вложенному пути.
  • Методы — GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS или ANY (один маршрут может соответствовать любому методу). Запросы OPTIONS обрабатываются автоматически как CORS-preflight, а не направляются в вашу функцию.
  • Авторизация — Public, API Key или Bearer Token, настраивается для каждого маршрута.

Формат события

Выберите формат Simple (плоские поля верхнего уровня) или формат, совместимый с AWS API Gateway v2:

event
// Your Lambda receives an event like (simple gateway format; body is always a string or null):
{
  "httpMethod": "POST",
  "path": "/api/users",
  "headers": {
    "content-type": "application/json"
  },
  "queryStringParameters": {
    "page": "1"
  },
  "pathParameters": {
    "id": "123"
  },
  "body": "{\"name\":\"Alice\"}"
}

Трансформация ответов

В расширенных настройках маршрута можно задать:

  • Response Headers — статические заголовки для каждого ответа.
  • Request Template — трансформация события перед отправкой в функцию.
  • Response Template — трансформация ответа функции перед отправкой клиенту.
  • Rate Limit — максимальное число запросов в минуту, считается для каждого IP клиента отдельно на каждый маршрут (у каждого исходного IP свой счётчик в фиксированном 60-секундном окне); запросы сверх лимита отклоняются с кодом 429.

Валидация запроса

К маршруту можно прикрепить необязательную схему входа для проверки тела запроса. Схема — подмножество JSON Schema (type, required, properties, items, enum, additionalProperties, а также ограничения длины, числа элементов и числовых диапазонов). Если схема задана, не соответствующее ей тело отклоняется с кодом 400 ещё до запуска функции; оставьте схему пустой, чтобы пропустить проверку.

Проверка подписи вебхуков

Проверяйте подписи входящих вебхуков на маршруте без единой строки кода. Выберите режим вебхука и задайте общий секрет; шлюз проверит HMAC сырого тела запроса до вызова функции и отклонит неверную подпись с кодом 403. Поддерживаемые режимы:

  • GitHub — заголовок X-Hub-Signature-256 (sha256=…, HMAC).
  • Stripe — заголовок Stripe-Signature (t=…,v1=…).
  • Custom — выбранный вами заголовок с hex HMAC-SHA256 тела.