advanced
Lambda
Запускайте event-driven функции без управления серверами, учитывая cold start, таймауты, IAM permissions и stateless-дизайн.
Lambda выполняет event-driven функции на Node.js без управления серверами. Триггеры: API Gateway, SQS, уведомления S3, EventBridge, расписания. На каждый вызов — изолированная память, потолок timeout и временный каталог `/tmp`.
Обработчики проектируют stateless: долговечное состояние — в DynamoDB, S3 или RDS через RDS Proxy. Cold start бьёт по latency чувствительных API; помогают provisioned concurrency и компактный bundle. IAM execution role даёт минимальные права на функцию.
| Ограничение | Типичный эффект | |-------------|-----------------| | Timeout (до 15 мин) | Длинные задачи — Step Functions или очереди | | Размер payload | Крупные загрузки через S3, не через handler | | Лимит concurrency аккаунта | Всплески требуют планирования reserved concurrency |
На интервью: cold start, идемпотентность с SQS, API Gateway vs Function URLs, Lambda в VPC и когда Lambda не подходит для стабильно высокого RPS API.
Типовые ошибки: монолитный handler; секреты в env без ротации; прямое подключение к RDS без пулинга; игнор partial batch failures у SQS-триггера.
Компромисс — нулевой server ops и оплата за использование против разброса latency, лимитов длительности и сложной локальной отладки.
Чеклист:
- Небольшие, идемпотентные и быстрые handlers.
- Состояние снаружи; крупные payload — через S3.
- Память (с ней растёт CPU) и timeout осознанно.
- Минимальные IAM-права на каждую функцию.