Aurabase-Logo
AurabasisDokumente
Dokumente›Edge Functions›SDK reference

JavaScript SDK: Funktionen

Jede Methode von aura.functions, ihre Signatur, die benötigte Rolle und was sie zurückgibt.

8 Min. gelesen·Ebene Referenz·Überarbeitet am 12.10.2026
Dieser englische Text wurde automatisch aus dem französischen Original generiert und wurde noch nicht überprüft.
Diese Seite wurde automatisch übersetzt. Maßgeblich ist die englische Version.
#
Einrichtung

1. Holen Sie sich den Kunden

aura.functions ist ein FunctionsService. Man baut es fast nie selbst.

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

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

Das Paket @aurabase/functions wird mit @aurabase/aurabase-js installiert. Installieren Sie es nur dann alleine, wenn Sie Ihren eigenen Client aus @aurabase/core erstellen. Es erfordert Node.js 20 oder höher und liefert ES-Module und CommonJS mit Typdeklarationen.

Jede Methode gibt Promise<AuraResponse<T>> zurück, ein Objekt { data, error }, das niemals Folgendes auslöst:

Falldataerror
Erfolgder Wertnull
Erfolg ohne Inhalt (204, leerer Körper)nullnull
Misserfolgnullein AuraError

Testen Sie data anstelle von error, wenn Sie den Wert benötigen: Nur dann weiß TypeScript, dass es sich nicht um null handelt.

MethodeRolle benötigt
invokeöffentlicher Schlüssel (anon), Benutzer oder service_role
jede andere Methodeservice_role (nur Server)
#
Rufen Sie an

2. aufrufen

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>>
OptionStandard
bodykeineJSON-serialisierbar. Ein Blob, ArrayBuffer, typisiertes Array, FormData, URLSearchParams oder ReadableStream gibt den Fehler invalid_body ohne Anfrage zurück.
method'POST'Die Methode, die die Funktion sieht
path'/'Der Pfad, den die Funktion sieht
headerskeineDer Funktion übergebene Header. authorization, apikey, x-request-id und x-aura-* werden von der Plattform verworfen.
timeoutClient-Standard: 30 sMillisekunden. Bricht den Anruf ab und gibt den Code timeout zurück.
signalkeineIhr eigener AbortSignal. Ein abgebrochener Anruf gibt den Code timeout zurück.
responseType'json'Wie data dekodiert wird: ein analysierter Wert, eine Zeichenfolge, ein Blob oder ein ArrayBuffer

name ist in der URL codiert, sodass ein Wert, der /, ? oder # enthält, seine Position nicht verlassen kann. Ein Name, der solche Zeichen enthält, wird einfach nicht gefunden.

invoke aktualisiert zuerst eine abgelaufene Benutzersitzung, sendet das JWT des Benutzers, wenn es eine gibt, und wiederholt nie einen Anruf.

So verwenden Sie es: Rufen Sie eine Funktion auf. Wie es fehlschlägt: Fehler, Zeitüberschreitungen und Wiederholungsversuche.

#
Verwalten

3. Auflisten und abrufen

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

Beide benötigen einen service_role-Schlüssel. get akzeptiert den -Namen oder die -ID; Wenn eine Funktion wie eine ID benannt wird, gewinnt der Name. Ein FunctionDef enthält den Quellcode und die Variablen der Funktion, weshalb ein öffentlicher Schlüssel 403 erhält.

Es gibt keine Methode zum Bereitstellen, Aktualisieren oder Löschen einer Funktion oder zum Schreiben von Geheimnissen: Verwenden Sie die HTTP-API oder die CLI .

#
Hintergrund

4. Jobs

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 gibt { code: 'bad_request', status: 400 } ohne Anfrage zurück, wenn functionName leer ist oder nur Leerzeichen enthält, und kürzt den Namen andernfalls.
  • listJobs filtert nach status (pending, running, completed, failed, dead) und gibt zwischen 1 und 500 Jobs zurück, standardmäßig 50.
  • Das Wiederholen abgebrochener Jobs hat keine Methode: Siehe Warteschlange für unzustellbare Nachrichten.
#
Zeitplan

5. Cron

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 hat 5 oder 6 Felder in UTC. deleteCronJob nimmt den -Namen an und gibt 404 für einen unbekannten Namen zurück. Es gibt kein getCronJob oder updateCronJob.

#
Referenz

6. Typen und Fehler

Exportiert von @aurabase/aurabase-js und @aurabase/functions:

importstypescript
import {
  FunctionsHttpError,
  FunctionsRelayError,
  isRelayStatus,
  type FunctionsResponseType,
} from '@aurabase/aurabase-js'
ExportierenWas es ist
FunctionsHttpErrorIhre Funktion (oder eine Verwaltungsroute) hat mit einem Fehler geantwortet. error.context enthält den zurückgegebenen Text.
FunctionsRelayErrorDie Plattform ist fehlgeschlagen: Netzwerk (status 0) oder 502, 503, 504 vom Gateway oder der Laufzeit erzeugt.
isRelayStatus(status)true für 0, 502, 503, 504.
FunctionsResponseType`'json' \

Beide Fehlerklassen erweitern AuraError, sodass isAuraError(error) wahr ist. AuraError hat status, code, message, details, retryAfter und die Getter isNotFound, isUnauthorized, isForbidden und isRateLimited.

Datentypen, exportiert von @aurabase/aurabase-js:

TypFelder
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? }
Abwärtskompatible Eigenschaften

Wenn eine Funktion ein JSON-Objekt zurückgibt, enthält data auch zwei nicht aufzählbare Eigenschaften, body und status, die für Code beibehalten werden, der für ältere Versionen geschrieben wurde. Verlassen Sie sich in neuem Code nicht auf sie.

Zuletzt aktualisiert · 12.10.2026