Serverless-контейнеры для Node.js, Python и Go: нативные модули без edge-лимитов
Каждая функция Inquir работает в изолированном контейнере с managed рантаймом. Нативные зависимости (sharp, puppeteer, pg, numpy) — через слои без ограничений edge-изолятов.
Last updated: 2026-04-20
- Per-function container isolation — dependencies never clash across functions
- Native modules via layers: sharp, bcrypt, numpy, pandas, cgo — no isolate limits
- Node.js 22, Python 3.12, Go 1.22 behind one gateway and pipeline
- No cluster to manage — push code, get an endpoint
Answer first
Direct answer
Serverless-контейнеры для Node.js, Python и Go: нативные модули без edge-лимитов. Node.js 22, Python 3.12 и Go 1.22 в изолированных контейнерах: нативные пакеты через слои без Docker-файлов. Managed рантайм — не надо собирать образ.
When it fits
- Нативные пакеты: sharp, puppeteer, pg, numpy
- Обработка изображений, PDF, ML-инференс
Tradeoffs
- Глобально распределённая логика рядом с пользователем, не требующая нативных пакетов — edge сильнее.
- Очень маленькие бандлы с минимальными зависимостями: edge даёт минимальную задержку по геолокации.
Нагрузка и где ломается
Когда edge-изоляторы ограничивают
Edge-рантаймы (Deno, V8 isolate) запрещают нативные модули. Sharp, puppeteer, pg, ffmpeg — не работают на edge.
Cloudflare Workers и Supabase Edge Functions ограничивают размер бандла и время CPU. Тяжёлые ML-инференс или обработка изображений — не для edge.
Компромиссы
Когда edge-функции всё же лучше
Глобально распределённая логика рядом с пользователем, не требующая нативных пакетов — edge сильнее.
Очень маленькие бандлы с минимальными зависимостями: edge даёт минимальную задержку по геолокации.
Как помогает Inquir
Изолированные контейнеры с полной поддержкой npm/PyPI
Node.js 22, Python 3.12 и Go 1.22 в изолированных контейнерах: нативные пакеты через слои без Docker-файлов. Managed рантайм — не надо собирать образ.
Hot containers снижают cold start там, где edge-задержка не нужна, но нативные зависимости необходимы.
Что получаете
Что отличает контейнерный рантайм
Нативные модули
Sharp, puppeteer, pg, numpy, scikit-learn через слои — устанавливаются отдельно от кода функции.
Три рантайма
Node.js 22, Python 3.12, Go 1.22 — выбирайте под задачу; смешивайте в одном рабочем пространстве.
Изоляция
Каждая функция в отдельном контейнере: зависимости не конфликтуют, память изолирована.
Тёплый пул
Hot containers для функций с постоянным трафиком — предсказуемая задержка без полного cold start.
Что делать дальше
Как работают нативные зависимости через слои
Создать слой
Добавить нативный пакет в слой через UI; слой собирается отдельно от кода функции.
Подключить слой к функции
Функция ссылается на слой; при деплое пакет доступен в контейнере.
Использовать как обычно
`import sharp from "sharp"` — работает в хендлере без изменений кода.
Пример кода
Native module example: sharp image processing
Sharp uses native C++ bindings—runs fine in Inquir containers, fails in most edge isolates. The function receives image bytes via HTTP body or pipeline payload.
import sharp from 'sharp'; export async function handler(event) { // Body is base64 for binary payloads routed through the gateway const input = Buffer.from(event.body ?? '', 'base64'); const thumbnail = await sharp(input) .resize(320, 240) .jpeg({ quality: 82 }) .toBuffer(); return { statusCode: 200, headers: { 'Content-Type': 'image/jpeg' }, body: thumbnail.toString('base64'), isBase64Encoded: true, }; }
Когда подходит
Когда нужны контейнерные функции
Когда это уместно
- Нативные пакеты: sharp, puppeteer, pg, numpy
- Обработка изображений, PDF, ML-инференс
Когда лучше не трогать
- Маршрутизация только на основе заголовков без тяжёлых зависимостей — edge быстрее по геолокации
FAQ
Вопросы и ответы
Поддерживается custom Dockerfile?
Нет. Inquir использует managed рантаймы Node.js 22, Python 3.12, Go 1.22. Нативные зависимости — через слои.
Как добавить нативный пакет?
Создать слой с нужным пакетом через UI и подключить к функции. Пакет доступен при запуске контейнера.
Is cold start slower than edge isolates?
Container cold starts are slower than V8 isolate cold starts. Use hot containers (warm pools) to pre-warm functions that need steady low latency. Measure p95/p99 with realistic traffic before committing to a cold-only model.
Can I use Python ML libraries like numpy and pandas?
Yes. Python 3.12 containers support the full PyPI ecosystem including numpy, pandas, scikit-learn, and other libraries with C extensions—pip install them like any other dependency.