Inquir Compute
Inquir Compute · вебхуки

Serverless-обработка вебхуков на вашем домене

Проверяйте подписи вебхуков, подтверждайте в лимите провайдера и продолжайте тяжёлую работу в serverless-функциях, задачах или пайплайнах на своём домене. Стабильные URL, сырые тела для подписи, затем асинхронная передача.

Проблемы с хендлерами вебхуков

SaaS щедро повторяет доставку. Если хендлер тридцать секунд пишет в базу до ответа — таймауты, дубликаты и ночные звонки.

Пропуск проверки подписи «только на стейдже» или забытая идемпотентность хороши ровно до двух одинаковых событий с двумя списаниями.

Почему ломается встроенная обработка вебхуков

Один общий endpoint смешивает аутентификацию людей и машин — хуже наблюдаемость.

Встроенные хендлеры в основном API смешивают масштабирование того, что хотелось развести.

Serverless-обработка вебхуков в Inquir

Функция на провайдера (или тип события) — узкая логика проверки в serverless-хендлере. Не смешиваете cookie пользователя с машинными ключами.

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

Возможности обработки вебхуков

Изолированные маршруты вебхуков

Пути провайдера — на небольшие хендлеры с узкими правами.

Трассировка выполнения

Тела (при необходимости сокращённые) и время, когда провайдер ставит доставку на паузу.

Передача в пайплайны

Быстрый ответ 200, тяжёлое — в пайплайн или задачу, если окна HTTP не хватает.

Как обрабатывать вебхуки на своём домене

Проверка подписи в serverless-хендлерах, быстрое подтверждение в лимите провайдера, идемпотентные записи.

1

Проверить

Подпись и разбор события с защитой.

2

Подтвердить или отложить

Отвечайте быстро; тяжёлое — в очередь.

3

Применить

Пишите в хранилище идемпотентно по идентификатору события у провайдера.

Набросок проверенного хендлера

Шлюз отдаёт событие в духе AWS API Gateway: body строкой, заголовки как пришли. Подключите проверку провайдера.

webhooks/stripe-ish.mjs
export async function handler(event) {
  const rawBody = event.body ?? '';
  if (!verifySignature(rawBody, event.headers)) {
    return { statusCode: 400, body: 'invalid signature' };
  }
  const evt = JSON.parse(rawBody);
  await enqueueForProcessing(evt.id, evt.type);
  return { statusCode: 200, body: 'ok' };
}

Когда это в тему

Когда это уместно

  • Нужен стабильный HTTPS-вход и serverless-процессор вебхуков на своём домене (шлюз и DNS под вашим контролем).
  • Хочется развести трафик вебхуков и пользовательские API.

Когда лучше не трогать

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

Вопросы и ответы

Медленный downstream?

Быстрое подтверждение, затем продолжение в serverless-пайплайне или задаче — чтобы таймауты провайдера не блокировали эффекты.

Маршруты по клиенту?

См. мультитенантную маршрутизацию: сегментация путей или хостов.

Повторные запросы?

Подпись, метка времени где есть, идемпотентные записи по идентификатору провайдера.

Inquir Compute

Самый простой способ запускать AI-агентов и backend-джобы без инфраструктуры.

Связаться info@inquir.org

© 2025 Inquir Compute. Все права защищены.