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
- Вход.
- Новый проект.
- Gateway или Function URL +
/health, GET, 200, 5 мин (Free). - Страница статуса в developer docs — публичная страница.
Шаг 2 — Алерты
Настройки → Подключить Telegram → бот StillOnline — Telegram.
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.
Дополнительно
Health URL для SaaS — быстрый старт за 5 минут
Публичный GET /health или /api/health с ответом 200 и внешняя проверка StillOnline со страницей статуса. Лимиты Free указаны честно. StillOnline.
Дизайн health URL: /health и /ready для SaaS
Выбор GET /health, /api/health или /ready для внешних проверок. JSON, auth, ping БД, страница статуса StillOnline и алерты Telegram через бота StillOnline.
Что мониторить в API-only SaaS
API-first: правильный health URL, страница статуса и алерты владельца. Мониторинг /health или /api/health и Telegram через бота StillOnline. StillOnline.
GitHub Actions и API StillOnline
Гейт деплоя в GitHub Actions: curl публичного JSON StillOnline или private checks с sk_live в Secrets. Лимиты REST API v1, Pro $9 и честные оговорки по инцидентам.