Логотип Аурабаза
аурабазадокументы
документы›Edge Functions›HTTP API reference

Edge Functions Справочник по HTTP API

Полная поверхность HTTP службы функций с указанием роли, необходимой для каждого маршрута.

10 мин читать·Уровень ссылка·Пересмотрено 12 окт. 2026 г.
Этот текст на английском языке был создан автоматически на основе французского оригинала и еще не проверялся.
Эта страница была переведена автоматически. Английская версия является авторитетной.
#
Конвенции

1. Соглашения

Базовый URL. URL-адрес вашего проекта, например https://my-app.aurabase.cloud. Проект идентифицируется хостом, поэтому приведенные ниже пути не содержат идентификатора проекта. Полная форма /v1/functions/{project_id}/… также принимается.

Аутентификация. Отправьте свой ключ в заголовке apikey. Добавьте Authorization: Bearer <JWT> для звонка от имени вошедшего в систему пользователя. Студия вызывает те же маршруты с помощью маркера сеанса консоли, что дает ей роль admin.

РольКак ты это получишьМожет позвонить
anonОткрытый ключ проектаPOST …/invoke
authenticatedОткрытый ключ плюс JWT пользователя.POST …/invoke
service_roleКлюч service_role (только сервер)Каждый маршрут ниже
adminКонсольный сеанс (Студия)Каждый маршрут ниже

Любой другой маршрут отвечает 403 на anon и authenticated:

403json
{ "error": { "code": "FORBIDDEN", "type": "forbidden", "request_id": "…",
  "message": "Accès interdit : Opération réservée au rôle service_role : seule l'invocation d'une fonction est ouverte aux clés publiques" } }

Формат. Тела имеют формат JSON и требуют Content-Type: application/json. Успех — { "data": …, "meta": null }. Ошибка — { "error": { "code", "message", "type", "request_id" } }.

Функциональный объект.

ПолеТип
id, project_id, nameнить
runtime"deno" или "wasm"
codeнитьИсточник для deno; base64 скомпилированного двоичного файла для wasm
code_hashнитьSHA-256 из code
env_varsобъектКлюч к ценности
permissionsобъектallow_net (массив строк), memory_mb, timeout_secs
is_activeлогическое значение
created_at, updated_atИСО 8601
#
Управлять

2. Функции

Метод и путьРольТелоОтвет
GET /v1/functionsроль_службыниктомассив функциональных объектов
POST /v1/functionsроль_службы{ name, runtime, code, env_vars? }объект функции
GET /v1/functions/{name}роль_службыниктообъект функции. {name} — это имя или идентификатор, если ни одна функция не имеет такого имени.
PATCH /v1/functions/{name}роль_службы{ code?, env_vars?, is_active?, permissions? }объект функции
DELETE /v1/functions/{name}роль_службыникто{ "data": null }
GET /v1/functions/{name}/codeроль_службыникто{ "data": { "code": "…" } }
GET /v1/functions/{name}/envроль_службыникто{ "data": [ { "key", "value" } ] }, значения расшифрованы
PUT /v1/functions/{name}/envроль_службы{ "vars": [ { "key", "value" } ] }{ "data": null }

Примечания:

  • POST — это дополнение к name: публикация существующего имени заменяет его код. Поле env_vars в этом теле заменяет существующие переменные; опустите это, чтобы сохранить их.
  • В PATCH``permissions объединяется поле за полем: { "permissions": { "timeout_secs": 60 } } сохраняет allow_net и memory_mb. Поле за пределами его границ возвращает 400.
  • PUT …/env заменяет весь набор переменных и является единственным маршрутом, который их шифрует. См. секреты .
  • Функция с is_active: false не найдена ни invoke, ни заданиями.
deploy.shbash
curl -X POST "$AURA_URL/v1/functions" \
  -H "apikey: $AURA_SERVICE_ROLE_KEY" -H "Content-Type: application/json" \
  -d '{"name":"hello","runtime":"deno","code":"Deno.serve(() => new Response(\"ok\"))"}'
#
Вызов

3. Вызов

POST /v1/functions/{name}/invoke. Роль: anon, authenticated или service_role.

ПолеТипПо умолчанию
methodнитьPOSTМетод HTTP, видимый функцией
pathнить/Путь, видимый функцией
headersобъектниктоЗаголовки, передаваемые функции. Зарезервированные заголовки удаляются.
bodyлюбой JSONниктоТело, данное функции
Заголовок запроса
apikeyНеобходимый
Content-Type: application/jsonНеобходимый
Authorization: Bearer <JWT>Необязательно: позвоните от имени этого пользователя
X-Aurabase-Invoke-Mode: rawНеобязательно: верните собственный ответ функции

Ответ по умолчанию, всегда 200:

200json
{ "data": { "status": 200, "headers": { "content-type": "application/json" },
  "body": { "greeting": "Hello, Ada!" }, "logs": [], "duration_ms": 74 }, "meta": null }

status — это статус вашей функции. logs пуст для deno. В необработанном режиме ответ является собственным ответом вашей функции: статус, content-type, байты плюс x-aurabase-invoke-origin: function.

ОтказСтатусerror.code
Функция не найдена или неактивна404NOT_FOUND
Время выполнения недоступно503SERVICE_UNAVAILABLE
Платформа перестала ждать выполнения (после timeout_secs плюс запас)504TIMEOUT
Плановая квота исчерпана403QUOTA_EXCEEDED
Слишком много звонков от одного клиента429rate_limit_exceeded
Тело выше примерно 256 КиБ503SERVICE_UNAVAILABLE
#
Фон

4. Задания и очередь недоставленных писем

Метод и путьРольТело или запросОтвет
POST /v1/functions/jobsроль_службы{ function_name, payload?, delay_secs?, max_attempts? }работа
GET /v1/functions/jobsроль_службы?status=&limit= (от 1 до 500, по умолчанию 50)массив вакансий
GET /v1/functions/jobs/{id}роль_службыникторабота
POST /v1/functions/jobs/{id}/retryроль_службыниктозадание, вернемся к pending
GET /v1/functions/jobs/dlqроль_службы?limit=массив мертвых рабочих мест
POST /v1/functions/jobs/dlq/requeueроль_службыникто{ "data": { "requeued": 1 } }

Объект задания: id, project_id, function_name, payload, status (pending, running, completed, failed, dead), attempts, max_attempts, error, scheduled_at, started_at, completed_at, created_at. Поведение: Задания, cron и очередь недоставленных сообщений.

#
Расписание

5. Крон

Метод и путьРольТелоОтвет
POST /v1/functions/cronроль_службы{ name, schedule, function_name, payload? }запись в cron
GET /v1/functions/cronроль_службыниктомассив записей
DELETE /v1/functions/cron/{name}роль_службыникто{ "data": null } или 404 для неизвестного имени

Запись: id, project_id, name, schedule (хранится в 6 полях), function_name, payload, is_active, last_run, next_run, created_at.

#
Монитор

6. Оповещения

Метод и путьРольТело или запрос
POST /v1/functions/alertsроль_службы{ name, metric, condition, threshold, channel, destination }
GET /v1/functions/alertsроль_службыникто
PATCH /v1/functions/alerts/{id}роль_службы{ "enabled": true }
DELETE /v1/functions/alerts/{id}роль_службыникто
GET /v1/functions/alerts/{id}/eventsроль_службы?limit=&offset=
GET /v1/functions/alerts/eventsроль_службы?limit=&offset=

Значения и поведение: Оповещения.

Последнее обновление · 12 окт. 2026 г.