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.