Перейти к содержимому
Документация

Функции

Функции — основная единица вычислений для кода, который запускается по событиям. Каждая функция — изолированный обработчик, который получает event и context и возвращает результат, — независимо от того, вызываете ли вы её из редактора, из фоновых задач или через HTTP-маршруты шлюза.

Кнопка Запустить в тестовой панели передаёт ваш JSON напрямую как объект event, без обёртки API Gateway. HTTP-маршруты, напротив, передают событие в стиле API Gateway со строковым body. Обработчики обычно различают оба случая — typeof event.body === 'string' в Node.js и аналоги в других средах выполнения, — чтобы работали оба пути вызова.

Как создавать функции#

  • Через UI — нажмите + Новая функция на странице функций. При необходимости загрузите .zip-архив с кодом.
  • Перетаскивание — перетащите файлы или папки в дерево файлов на боковой панели редактора.

Конфигурация функции#

ПараметрПо умолчаниюОписание
Handlerindex.handlerТочка входа в формате файл.экспорт.
Runtimenodejs22Node.js 22, Python 3.12 или Go 1.22
Timeout5 000 msМаксимальное время выполнения, после которого платформа останавливает функцию.
Memory256 MBЛимит памяти контейнера функции. По умолчанию 256 МБ; минимум — 64 МБ, максимум — 2048 МБ (2 ГБ).
Network—Включите, чтобы разрешить исходящие HTTP/TCP-соединения из функции. Это единственный переключатель: включите его — и контейнеры функции получат сеть при следующем вызове. По умолчанию выключено.
Системные пакеты—Необязательно. Системные пакеты образа функции перечисляются в inquir.yaml рядом с кодом: build.system.presets (ffmpeg, imagemagick, libvips, poppler, tesseract, ghostscript, fonts) и build.system.packages (имена пакетов Debian). Браузер без интерфейса для Puppeteer или Playwright тоже задаётся пакетами: packages: [chromium, fonts-liberation, fonts-noto-color-emoji], затем запускайте /usr/bin/chromium с --no-sandbox. Для Node.js и Python; Go появится позже. Редактор подсказывает и проверяет этот файл.

Тёплые контейнеры#

Нажмите Развернуть, чтобы заранее прогреть контейнеры функции. В тёплом контейнере уже работает HTTP-сервер, поэтому последующие вызовы используют запущенный процесс и пропускают работу холодного старта — создание контейнера, запуск среды выполнения и загрузку обработчика.

Контейнеры сверх минимума на функцию утилизируются после 5 минут простоя, а последний оставшийся контейнер останавливается после 10 минут простоя. Оба порога настраиваются переменными HOT_LAMBDA_TTL_MS и HOT_LAMBDA_MAX_IDLE_TTL_MS.

Кнопке «Развернуть» не нужна настройка сервера: она доступна в любой установке.

Тестовая панель#

Правая панель редактора содержит вкладки для запуска и настройки функции:

  • Запуск — синхронный вызов, в котором ваш JSON передаётся как event. Включите Поток, чтобы получать поток Server-Sent Events в поддерживаемых средах выполнения.
  • Настройки — обработчик, таймаут, доступ в сеть и переменные окружения.
  • Трассировки — недавние запуски этой функции (те же трассировки, что и в разделе «Запуски»).
  • AI — помощник прямо в редакторе; доступен, если включён в вашей установке.