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

JavaScript SDK: функции

Каждый метод aura.functions, его сигнатура, нужная ему роль и то, что он возвращает.

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

1. Получить клиента

aura.functions — это FunctionsService. Вы почти никогда не строите его самостоятельно.

client.tstypescript
import { createClient } from '@aurabase/aurabase-js'

const aura = createClient('https://my-app.aurabase.cloud', 'aura_anon_…')
aura.functions.invoke('hello')

Пакет @aurabase/functions устанавливается вместе с @aurabase/aurabase-js. Установите его отдельно, только если вы создадите свой собственный клиент из @aurabase/core. Для него требуется Node.js 20 или новее, а модули ES и CommonJS поставляются с объявлениями типов.

Каждый метод возвращает Promise<AuraResponse<T>>, объект { data, error }, который никогда не выдает:

Случайdataerror
Успехценностьnull
Успех без содержания (204, пустое тело)nullnull
ОтказnullAuraError

Проверяйте data вместо error, когда вам нужно значение: только тогда TypeScript узнает, что это не null.

МетодТребуется роль
invokeоткрытый ключ (anon), пользователь или service_role
любой другой методservice_role (только сервер)
#
Вызов

2. вызвать

signaturetypescript
invoke<T = unknown>(
  name: string,
  options?: {
    body?: unknown
    method?: string
    path?: string
    headers?: Record<string, string>
    signal?: AbortSignal
    timeout?: number
    responseType?: 'json' | 'text' | 'blob' | 'arrayBuffer'
  },
): Promise<AuraResponse<T>>
ВариантПо умолчанию
bodyниктоJSON-сериализуемый. Типизированный массив Blob, ArrayBuffer, FormData, URLSearchParams или ReadableStream возвращает ошибку invalid_body без какого-либо запроса.
method'POST'Метод, который видит функция
path'/'Путь, который видит функция
headersниктоЗаголовки, передаваемые функции. authorization, apikey, x-request-id и x-aura-* отбрасываются платформой.
timeoutклиент по умолчанию, 30 сМиллисекунды. Отменяет вызов и возвращает код timeout.
signalниктоВаш собственный AbortSignal. Отмененный вызов возвращает код timeout.
responseType'json'Как декодируется data: проанализированное значение, строка, Blob или ArrayBuffer.

name закодирован в URL-адресе, поэтому значение, содержащее /, ? или #, не может покинуть свою позицию. Имя, содержащее такие символы, просто не встречается.

invoke сначала обновляет истекший сеанс пользователя, отправляет JWT пользователя, если он есть, и никогда не повторяет вызов.

Как это использовать: Вызовите функцию. Причины сбоя: Ошибки, тайм-ауты и повторные попытки.

#
Управлять

3. перечислить и получить

signaturestypescript
list(): Promise<AuraResponse<FunctionDef[]>>
get(nameOrId: string): Promise<AuraResponse<FunctionDef>>

Обоим нужен ключ service_role. get принимает имя или идентификатор ; если функция названа как идентификатор, имя выигрывает. FunctionDef содержит исходный код и переменные функции, поэтому открытый ключ получает 403.

Не существует способа развернуть, обновить или удалить функцию или записать секреты: используйте HTTP API или CLI.

#
Фон

4. Вакансии

signaturestypescript
enqueueJob(
  functionName: string,
  options?: { payload?: unknown; delaySecs?: number; maxAttempts?: number },
): Promise<AuraResponse<Job>>

listJobs(options?: { status?: string; limit?: number }): Promise<AuraResponse<Job[]>>
getJob(jobId: string): Promise<AuraResponse<Job>>
  • enqueueJob возвращает { code: 'bad_request', status: 400 } без какого-либо запроса, если functionName пусто или содержит только пробелы, в противном случае имя обрезается.
  • listJobs фильтрует status (pending, running, completed, failed, dead) и возвращает от 1 до 500 заданий, 50 по умолчанию.
  • Повторная попытка невыполненных заданий не имеет метода: см. очередь недоставленных сообщений .
#
Расписание

5. Крон

signaturestypescript
listCronJobs(): Promise<AuraResponse<CronJob[]>>
createCronJob(
  name: string,
  schedule: string,
  functionName: string,
  options?: { payload?: unknown },
): Promise<AuraResponse<CronJob>>
deleteCronJob(name: string): Promise<AuraResponse<null>>

schedule имеет 5 или 6 полей в формате UTC. deleteCronJob принимает имя и возвращает 404 для неизвестного имени. Не существует getCronJob или updateCronJob.

#
Ссылка

6. Виды и ошибки

Экспортировано @aurabase/aurabase-js и @aurabase/functions:

importstypescript
import {
  FunctionsHttpError,
  FunctionsRelayError,
  isRelayStatus,
  type FunctionsResponseType,
} from '@aurabase/aurabase-js'
ЭкспортЧто это такое
FunctionsHttpErrorВаша функция (или маршрут управления) ответила с ошибкой. error.context содержит возвращенное тело.
FunctionsRelayErrorСбой платформы: сеть (status 0) или 502, 503, 504 , созданная шлюзом или средой выполнения.
isRelayStatus(status)true для 0, 502, 503, 504.
FunctionsResponseType`'json' \

Оба класса ошибок расширяют AuraError, поэтому isAuraError(error) истинно. AuraError имеет status, code, message, details, retryAfter и геттеры isNotFound, isUnauthorized, isForbidden и isRateLimited.

Типы данных, экспортируемые @aurabase/aurabase-js:

ТипПоля
FunctionDefid, project_id, name, runtime, code, code_hash, env_vars, permissions, is_active, created_at, updated_at
FunctionPermissionsallow_net: string[], memory_mb: number, timeout_secs: number
Jobid, project_id, function_name, status, payload, attempts, max_attempts, error?, scheduled_at, started_at?, created_at, completed_at?
CronJobid, project_id, name, schedule, function_name, payload, is_active, last_run?, next_run?, created_at
AuraResponse<T>{ data, error, meta? }
Свойства обратной совместимости

Когда функция возвращает объект JSON, data также содержит два неперечисляемых свойства, body и status, которые сохраняются для кода, написанного для более старых версий. Не полагайтесь на них в новом коде.

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