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

Python 3.12 serverless-функции для API, cron и ML-инструментов

Python 3.12 в изолированных контейнерах: numpy, pandas, scikit-learn, httpx через слои. Lambda-стиль `handler(event, context)` — совместим с AWS Lambda; деплой из браузера или CLI.

Last updated: 2026-04-20

Direct answer

Python 3.12 serverless-функции для API, cron и ML-инструментов. numpy, pandas, scikit-learn, httpx, boto3 — через слои функции. Контейнер изолирован: конфликты зависимостей между функциями исключены.

When it fits

  • ML-инференс, обработка данных: numpy, pandas, scikit-learn
  • Существующий Lambda-код на Python для миграции

Tradeoffs

  • Простой JSON-прокси без научных пакетов — Node.js или Go дают меньший cold start.
  • Если модель уже на HuggingFace Inference и нужен только API-прокси — Python overhead не нужен.

Когда нужен полноценный Python для serverless

Deno и edge-рантаймы не поддерживают PyPI-пакеты. numpy, pandas, scikit-learn, torch — только в полноценном Python-контейнере.

ML-инференс, обработка данных, криптография — задачи, которым нужен C-extension через PyPI, а не JavaScript-аналог.

Когда Python serverless избыточен

Простой JSON-прокси без научных пакетов — Node.js или Go дают меньший cold start.

Если модель уже на HuggingFace Inference и нужен только API-прокси — Python overhead не нужен.

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 для параллельных IO.

ML-инференс

scikit-learn, lightgbm, onnxruntime в изолированном контейнере без конфликтов.

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

1

Написать handler

`def handler(event, context): body = json.loads(event["body"]); ... return {"statusCode": 200, "body": ...}`

2

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

requirements.txt → слой через UI; нативные пакеты компилируются для рантайма.

3

Задеплоить

Загрузить через браузер или 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.

tools/classify.py (AI agent tool endpoint)
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})}
jobs/nightly-sync.py (scheduled cron pipeline)
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-прокси без scientific пакетов — 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 connect to VPC databases, Redis clusters, and internal services that edge functions cannot reach.

Inquir Compute logoInquir Compute

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

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

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