Serverless API-шлюз
Публичные HTTP API и webhooks на serverless-функциях — авторизация на маршрут, параметры пути, CORS, лимиты и маршрутизация без отдельного ingress-слоя.
Без отдельного ingress-слоя: HTTPS-маршруты сразу ведут к функциям, политики задаются на каждый путь, запуск на /gw/{workspace}/{path} — без отдельного деплоя шлюза и смены DNS.
- Для API — методы и пути, отдельная политика доступа (без auth, API key или Bearer), CORS и параметры вроде /users/:id в обработчике.
- Для вебхуков — стабильные публичные URL в рабочем пространстве, контролируемый вход и тот же сценарий вызова функций, что и у остального HTTP.
- Для инструментов агентов — отдельный HTTPS-маршрут на инструмент или действие, те же деплой, секреты и наблюдаемость, что у других хендлеров за шлюзом.
Дальше по теме
Как это работает
Как работает serverless-маршрутизация API
Создайте маршрут
Любой метод и путь ведут к выбранной функции. Есть wildcards и параметры пути вроде /users/:id.
Настройте доступ
Без авторизации, API key или Bearer — отдельно для каждого маршрута.
Готово к вызовам
Маршрут сразу доступен по /gw/{workspace}/{path}. Отдельный деплой шлюза и смена DNS не нужны.
Возможности
Возможности шлюза для API и вебхуков
Параметры в пути
/users/:id → event.pathParameters.id. Поддерживаются шаблоны вроде /admin/*.
Ограничение частоты
Лимит запросов в минуту на маршрут — проще защититься от злоупотреблений.
CORS
Разрешённые источники и заголовки задаются на маршрут.
Любой HTTP-метод
GET, POST, PUT, DELETE по отдельности или один маршрут ANY на все методы.
Пример
Пример route.json и обработчика функции
// Route configuration { "method": "GET", "path": "/users/:id", "functionId": "get-user", "auth": "api-key", "rateLimit": 100, "cors": { "allowedOrigins": ["https://myapp.com"] } }
export async function handler(event, context) { const id = event.pathParameters?.id; if (!id) { return { statusCode: 400, body: JSON.stringify({ error: 'missing id' }) }; } const user = await db.users.findById(id); return { statusCode: 200, body: JSON.stringify(user), }; }
Начать бесплатно
Задеплойте первую функцию за несколько минут. Карта не нужна.