Python 3.12 serverless-функции для API, пайплайнов и ML-инструментов
Python 3.12 serverless-функции работают в изолированных контейнерах: numpy, pandas, scikit-learn и любой пакет из PyPI работают из коробки. Подключайте функции к HTTP-маршрутам для инструментов AI-агентов или шагам пайплайна для ETL и ML-инференса. Ночные запуски задаются расписанием пайплайна.
Обновлено: 2026-06-28
Кратко
Суть ответа
Python 3.12 serverless-функции для API, пайплайнов и ML-инструментов. Inquir запускает Python 3.12 в Docker-контейнерах. Пакеты из PyPI добавляются через слои функции (requirements.txt в UI слоя); чистые Python-зависимости могут жить прямо в бандле функции. numpy, pandas, scikit-learn и библиотеки с C-расширениями собираются при сборке слоя так же, как локально.
Когда подходит
- В serverless-рантайме нужны numpy, pandas, scikit-learn или любая ML-библиотека с C-расширениями.
- Вы строите бэкенды инструментов AI-агентов на Python, которым нужны авторизация HTTP и пайплайны с расписаниями и асинхронным выполнением на одной платформе.
На что обратить внимание
- Lambda Layers для numpy, pandas и ML-библиотек добавляют возни с упаковкой: лимит платформы в 250 МБ в распакованном виде заставляет аккуратно урезать каждый релиз.
- Сшивать API Gateway + Lambda + CloudWatch + EventBridge ради бэкенда инструментов AI-агента на Python — заметная церемония для команды, которой нужны просто HTTP-эндпоинты с авторизацией.
Нагрузка и где ломается
Где edge-рантаймы и managed-сервисы ограничивают Python
Edge-рантаймы Python не поддерживают вовсе. Lambda и GCP Cloud Functions поддерживают, но большие деревья зависимостей бьют по холодному старту: numpy, pandas и scikit-learn без аккуратной работы со слоями уводят его в секунды.
AI-командам Python часто нужен для бэкендов инструментов: вызвать OpenAI, прогнать инференс scikit-learn, обработать датафреймы или запустить пайплайны Hugging Face — всему этому нужен настоящий контейнер Python 3.12 с полной поддержкой PyPI.
Компромиссы
Почему Python только на Lambda создаёт трение
Lambda Layers для numpy, pandas и ML-библиотек добавляют возни с упаковкой: лимит платформы в 250 МБ в распакованном виде заставляет аккуратно урезать каждый релиз.
Сшивать API Gateway + Lambda + CloudWatch + EventBridge ради бэкенда инструментов AI-агента на Python — заметная церемония для команды, которой нужны просто HTTP-эндпоинты с авторизацией.
Как помогает Inquir
Полный Python 3.12 за одним шлюзом
Inquir запускает Python 3.12 в Docker-контейнерах. Пакеты из PyPI добавляются через слои функции (requirements.txt в UI слоя); чистые Python-зависимости могут жить прямо в бандле функции. numpy, pandas, scikit-learn и библиотеки с C-расширениями собираются при сборке слоя так же, как локально.
Одна и та же Python-функция может быть эндпоинтом инструмента AI-агента (HTTP-маршрут с API-ключом), ночной ETL-задачей (пайплайн по расписанию) или стадией LLM-пайплайна (фоновый шаг) — один обработчик, три пути вызова, одна наблюдаемость.
Что вы получаете
Возможности рантайма Python 3.12
Вся экосистема PyPI
numpy, pandas, scikit-learn, transformers, Pillow, httpx, psycopg2 и любой пакет с C-расширениями, который собирается на Python 3.12.
Бэкенды инструментов AI-агентов
Выставляйте ML-функции на Python как HTTP-эндпоинты с авторизацией: вызывайте OpenAI, гоняйте инференс, делайте запросы к датафреймам и возвращайте структурированный JSON оркестраторам агентов.
Ночной ETL и обработка данных
Добавьте Python-функции в шаги пайплайна по расписанию: читайте из API, трансформируйте через pandas, пишите в базы — история запусков и ретраи видны в консоли.
Стадии LLM-пайплайнов
Используйте Python-шаги внутри многостадийных пайплайнов для retrieval, генерации эмбеддингов, модерации или суммаризации — секреты и слои общие для всех стадий.
Что дальше
Как задеплоить Python 3.12 serverless-функцию
Написать обработчик
Объявите def handler(event, context) в файле .py. event.body — строка; при необходимости разберите её через json.loads.
Объявить зависимости
Создайте слой с requirements.txt для numpy, pandas и других пакетов из PyPI. Подключите слой к функции — без Dockerfile и без лимита на размер слоя в стиле Lambda.
Подключить маршруты шлюза и шаги пайплайна
Привяжите функцию к HTTP-маршруту или шагу пайплайна. Расписание и фоновое выполнение принадлежат пайплайну; обработчик остаётся общим.
Пример кода
Обработчик на Python: инструмент AI-агента и ETL-пайплайн по расписанию
event.body приходит JSON-строкой — разбирайте через json.loads. Для ответов на HTTP-маршрутах возвращайте {"statusCode": ..., "body": json.dumps(...)}. Секреты подставляются как переменные окружения.
import json import os from openai import OpenAI client = OpenAI(api_key=os.environ["OPENAI_API_KEY"]) # injected from workspace secrets def handler(event, context): body = json.loads(event.get("body") or "{}") text = body.get("text") if not text: return {"statusCode": 400, "body": json.dumps({"error": "text required"})} response = client.chat.completions.create( model="gpt-4o-mini", messages=[{"role": "user", "content": f"Classify the sentiment of: {text}"}], ) return {"statusCode": 200, "body": json.dumps({"sentiment": response.choices[0].message.content})}
import json import os import pandas as pd import psycopg2 def handler(event, context): conn = psycopg2.connect(os.environ["DATABASE_URL"]) df = pd.read_sql("SELECT * FROM events WHERE processed = false LIMIT 1000", conn) # transform and upsert results = [] for _, row in df.iterrows(): result = process_row(row) results.append(result) conn.close() return {"processed": len(results)}
Когда подходит
Когда Python 3.12 serverless-функции подходят лучше всего
Когда это уместно
- В serverless-рантайме нужны numpy, pandas, scikit-learn или любая ML-библиотека с C-расширениями.
- Вы строите бэкенды инструментов AI-агентов на Python, которым нужны авторизация HTTP и пайплайны с расписаниями и асинхронным выполнением на одной платформе.
Когда лучше выбрать другое
- Логика на Python крошечная, а нужна только глобальная доставка на edge — на большинстве платформ с edge-изолятами Python недоступен.
Частые вопросы
Частые вопросы
Какая версия Python в Inquir?
Python 3.12. Поддерживаются стандартная библиотека, asyncio и все синхронные паттерны. Для асинхронных обработчиков используйте async def handler.
Можно ли использовать pandas и numpy, не упираясь в лимиты размера?
Да. В отличие от лимита Lambda в 250 МБ на распакованный слой, подключите numpy и pandas слоем функции — платформа соберёт слой без такой урезки по размеру.
Как получить доступ к переменным окружения и секретам?
Привяжите секреты в консоли Inquir — при запуске они подставляются как переменные окружения. Читайте их через os.environ["SECRET_NAME"] и никогда не зашивайте учётные данные в Python-обработчик.
Могут ли Python-функции обращаться к приватным базам?
Да. Функции на контейнерах могут обращаться к базам и HTTP API по строкам подключения из секретов воркспейса — в отличие от edge-изолятов, которые блокируют типичные исходящие вызовы с сервера. Достижимость зависит от сети вашего деплоя.