Python 3.12 serverless-функции для API, cron и ML-инструментов
Python 3.12 в изолированных контейнерах: numpy, pandas, scikit-learn и httpx через слои. Lambda-стиль <code>handler(event, context)</code> совместим с AWS Lambda; деплой из браузера или CLI.
Обновлено: 2026-06-28
Кратко
Суть ответа
Python 3.12 serverless-функции для API, cron и ML-инструментов. numpy, pandas, scikit-learn, httpx и boto3 подключаются через слои функции. Контейнер изолирован — конфликты зависимостей между функциями исключены.
Когда подходит и когда нет
- ML-инференс и обработка данных: numpy, pandas, scikit-learn
- Существующий Lambda-код на Python для миграции
На что обратить внимание
- Для простого JSON-прокси без научных пакетов Node.js или Go дают меньший холодный старт.
- Если модель уже на HuggingFace Inference и нужен только API-прокси, накладные расходы Python ни к чему.
Ситуация: нагрузка и где обычно ломается
Когда нужен полноценный Python для serverless
Deno и edge-рантаймы не поддерживают PyPI-пакеты: numpy, pandas, scikit-learn и torch работают только в полноценном Python-контейнере.
ML-инференс, обработка данных, криптография — задачи, которым нужны C-расширения из PyPI, а не JavaScript-аналог.
Компромиссы
Когда Python в serverless избыточен
Для простого JSON-прокси без научных пакетов Node.js или Go дают меньший холодный старт.
Если модель уже на HuggingFace Inference и нужен только API-прокси, накладные расходы Python ни к чему.
Как Inquir помогает в этом сценарии
Python 3.12 с PyPI-пакетами через слои
numpy, pandas, scikit-learn, httpx и boto3 подключаются через слои функции. Контейнер изолирован — конфликты зависимостей между функциями исключены.
Lambda-стиль def handler(event, context): та же сигнатура, что у AWS Lambda. Миграция сводится к замене ARN на URL шлюза.
Что вы получаете на платформе
Что даёт рантайм Python 3.12
PyPI через слои
numpy, pandas, scikit-learn, httpx, pillow и boto3 — добавьте в слой и подключите к функции.
Lambda-совместимость
def handler(event, context) — как в AWS Lambda; event["body"] приходит строкой JSON.
Async
async def handler поддерживается; asyncio — для параллельного I/O.
ML-инференс
scikit-learn, lightgbm и onnxruntime в изолированном контейнере — без конфликтов зависимостей.
Что сделать дальше, по шагам
Как задеплоить Python функцию
Написать handler
def handler(event, context): body = json.loads(event["body"]); ... return {"statusCode": 200, "body": ...}
Добавить зависимости в слой
requirements.txt превращается в слой через UI; нативные пакеты компилируются под рантайм.
Задеплоить
Загрузите через браузер или CLI — URL шлюза готов.
Пример кода
Python handler: AI agent tool and cron ETL
event.body arrives as a JSON string—parse with json.loads. Return {"statusCode": ..., "body": json.dumps(...)} for HTTP route responses. Secrets are injected as environment variables.
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
Когда это уместно
- ML-инференс и обработка данных: numpy, pandas, scikit-learn
- Существующий Lambda-код на Python для миграции
Когда лучше выбрать другое
- Простой JSON-прокси без научных пакетов — Node.js или Go эффективнее
Вопросы и ответы
Вопросы и ответы
Совместимо с AWS Lambda Python?
Да. Та же сигнатура handler(event, context). event["body"] — строка; парсите через json.loads().
Как добавить numpy?
Создайте слой с numpy в requirements.txt и подключите к функции — дальше обычный import numpy as np.
How do I access environment variables and secrets?
Bind secrets in the Inquir console; they are injected as environment variables at runtime. Access with os.environ["SECRET_NAME"] — never hardcode credentials in your Python handler.
Can Python functions call private databases?
Yes. Container-backed functions can call databases and HTTP APIs using connection strings from workspace secrets—unlike edge isolates that block typical server-side outbound patterns. Reachability depends on your deployment network.