← Блог

Uptime-мониторинг AWS Lambda и API Gateway

AWS Lambda за API Gateway (или Function URL) — частый indie API-стек: оплата за вызов, автоскейл, без патчей сервера. CloudWatch показывает ошибки вашей функции; он не даёт клиентам ссылку на статус, а cold start — не то же самое, что outage. Внешнему мониторингу нужен health URL, который отделяет «медленный первый hit» от «API недоступен».

StillOnline выполняет HTTP GET снаружи AWS, размещает страницу статуса и шлёт алерты через бота StillOnline, Slack или email.

Краткий ответ

AWS Lambda за API Gateway или Function URL должен отдавать GET /health с 200, когда функция отвечает — handler минимальный против шума cold start. Зарегистрируйте публичный HTTPS URL в StillOnline; на Free один проект, один URL, проверка каждые пять минут (тарифы). Делитесь stillonline.tech/s/..., алерты через бота StillOnline.

Cold start vs реальный сбой

Cold start добавляет секунды после простоя. StillOnline считает таймаут и не-200 как down — проектируйте /health с учётом этого.

СимптомВероятная причинаДействие
Красный раз, потом зелёныйCold startМинимальный handler; provisioned concurrency при жёстком SLA
Красный несколько интерваловБаг деплоя, IAM, маршрут GatewayЧините функцию; пост на странице статуса
502/503 от GatewayИнтеграция или throttlingРеальный outage для клиентов
Health тянет тяжёлую БДМедленно на каждую проверкуLiveness на /health; DB на /readyдизайн health

StillOnline не различает cold start внутри внешней проверки — health должен быстро отдавать 200, когда стек здоров.

Что класть в health URL

  • { "status": "ok" } и 200
  • Без auth только на /health
  • Без секретов в теле ответа
  • Опционально: дешёвый DynamoDB/RDS ping, если «up» = «БД доступна»
curl -sS -o /dev/null -w "%{http_code}\n" https://api.example.com/prod/health

Тот же stage и custom domain, что в документации интеграторов.

API-only: мониторинг API-only SaaS.

Шаг 1 — StillOnline

  1. Вход.
  2. Новый проект.
  3. Gateway или Function URL + /health, GET, 200, 5 мин (Free).
  4. Страница статуса в developer docs — публичная страница.

Шаг 2 — Алерты

НастройкиПодключить Telegramбот StillOnlineTelegram.

Free: один канал. Pro / Ultimate: все три — тарифы.

Лимиты AWS free tier и StillOnline — разные бюджеты для solo API.

Связанные материалы

FAQ

StillOnline вызывает Lambda на каждую проверку?

Да — каждая внешняя проверка это HTTP GET к health URL, что считается вызовом Lambda по документации AWS. Минимальный /health держит стоимость низкой; интервал пять минут на Free обычно ок для indie API.

Stage URL Gateway или custom domain в StillOnline?

Регистрируйте HTTPS hostname из документации клиентов. Если это custom domain — мониторьте его.

StillOnline отдельно детектирует cold start Lambda?

Нет. Если cold start красит проверки — упростите /health, увеличьте memory или provisioned concurrency. StillOnline — только pass/fail по HTTP.