Inquir Compute logoInquir Compute
Рантайм · Inquir Compute

Node.js 22 serverless-функции с нативными модулями и тёплыми пулами

Handlers в Lambda-стиле на Node.js 22: ES modules, `fetch` из коробки, нативные npm-пакеты через слои, тёплые пулы для AI agent tool loops.

Last updated: 2026-04-20

Direct answer

Node.js 22 serverless-функции с нативными модулями и тёплыми пулами. Node.js 22 с ES modules, `fetch`, `crypto`, `fs` и полным npm-реестром. Нативные пакеты — через слои без изменений кода.

When it fits

  • Нативные npm-пакеты: sharp, puppeteer, pg
  • Существующий Lambda-код на Node.js для миграции

Tradeoffs

  • Простая маршрутизация без нативных зависимостей — Cloudflare Workers быстрее по геолокации.
  • Если бандл укладывается в 1 МБ и нет нативных пакетов — edge-деплой с меньшей задержкой.

Когда edge-рантайм не подходит для Node.js

Cloudflare Workers и Deno Edge ограничивают набор Node.js API и нативные пакеты. `require("fs")`, `sharp`, `pg`, `puppeteer` — недоступны.

Верификация JWT, работа с буферами, нативные crypto-extensions — полноценный Node.js с изолированным контейнером надёжнее.

Когда хватает edge или лёгкого рантайма

Простая маршрутизация без нативных зависимостей — Cloudflare Workers быстрее по геолокации.

Если бандл укладывается в 1 МБ и нет нативных пакетов — edge-деплой с меньшей задержкой.

Полноценный Node.js 22 в изолированном контейнере

Node.js 22 с ES modules, `fetch`, `crypto`, `fs` и полным npm-реестром. Нативные пакеты — через слои без изменений кода.

Тот же handler-контракт, что AWS Lambda: `export async function handler(event)`. Миграция с Lambda — минимальная.

Что даёт Node.js 22 рантайм

ES Modules

`import/export` из коробки, top-level await, встроенный `fetch`.

Нативные пакеты

Sharp, puppeteer, pg, bcrypt, canvas через слои без workaround.

Lambda-совместимый контракт

`export async function handler(event) { return { statusCode, body } }` — как AWS Lambda.

TypeScript

Компиляция при деплое; TypeScript-файлы деплоятся напрямую.

Как задеплоить Node.js функцию

1

Написать handler

Экспортировать `handler(event)`, получить `event.body` — строка JSON.

2

Добавить зависимости

package.json или слой для нативных пакетов.

3

Задеплоить

Загрузить через браузерный редактор или CLI; шлюз получает URL.

HTTP handler with native module

The gateway passes an HTTP-shaped event: path, headers, body (string), queryStringParameters. Return statusCode + body. Native modules like sharp work because the runtime is a real container.

api/resize.mjs
import sharp from 'sharp'; // native module — works in containers, not in edge isolates

export async function handler(event) {
  const params = event.queryStringParameters ?? {};
  const width = Number(params.width ?? 320);
  const height = Number(params.height ?? 240);

  if (!event.body) return { statusCode: 400, body: JSON.stringify({ error: 'body required' }) };
  const input = Buffer.from(event.body, 'base64');
  const resized = await sharp(input).resize(width, height).jpeg({ quality: 85 }).toBuffer();

  return {
    statusCode: 200,
    headers: { 'Content-Type': 'image/jpeg' },
    body: resized.toString('base64'),
    isBase64Encoded: true,
  };
}

Когда выбирать Node.js

Когда это уместно

  • Нативные npm-пакеты: sharp, puppeteer, pg
  • Существующий Lambda-код на Node.js для миграции

Когда лучше не трогать

  • Простая маршрутизация без зависимостей — edge дешевле по геолокации

Вопросы и ответы

Совместимо с AWS Lambda?

Да. Тот же `handler(event)` контракт. `event.body` — строка; парсите через `JSON.parse`. Большинство Lambda-хендлеров портируется без изменений.

Поддерживается TypeScript?

Да. `.ts` файлы компилируются при деплое; отдельный `tsc` шаг не нужен.

How do I handle binary uploads through the gateway?

Binary bodies arrive as base64-encoded strings when the gateway receives binary content. Decode with Buffer.from(event.body, "base64") before processing.

Inquir Compute logoInquir Compute

Самый простой способ запускать AI-агентов и backend-джобы без инфраструктуры.

Связаться info@inquir.org

© 2025 Inquir Compute. Все права защищены.