Aurabase-logo
aurabasisdocumenten
documenten›Edge Functions›SDK reference

JavaScript SDK: functies

Elke methode van aura.functions, de handtekening ervan, de rol die deze nodig heeft en wat deze retourneert.

8 min lezen·Niveau referentie·Herzien op 12 okt 2026
Deze Engelse tekst is automatisch gegenereerd op basis van het Franse origineel en is nog niet beoordeeld.
Deze pagina is automatisch vertaald. De Engelse versie is gezaghebbend.
#
Installatie

1. Haal de klant op

aura.functions is een FunctionsService. Je bouwt het bijna nooit zelf.

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

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

Het pakket @aurabase/functions wordt geïnstalleerd met @aurabase/aurabase-js. Installeer het alleen alleen als u uw eigen client samenstelt vanuit @aurabase/core. Het vereist Node.js 20 of hoger en levert ES-modules en CommonJS met typeverklaringen.

Elke methode retourneert Promise<AuraResponse<T>>, een object { data, error } dat nooit gooit:

Gevaldataerror
Succesde waardenull
Succes zonder inhoud (204, lege tekst)nullnull
Mislukkingnulleen AuraError

Test data in plaats van error wanneer u de waarde nodig heeft: alleen dan weet TypeScript dat het niet null is.

MethodeRol nodig
invokeopenbare sleutel (anon), gebruiker of service_role
elke andere methodeservice_role (alleen server)
#
Bel

2. aanroepen

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>>
OptieStandaard
bodygeenJSON-serialiseerbaar. Een Blob, ArrayBuffer, getypte array, FormData, URLSearchParams of ReadableStream retourneert de fout invalid_body zonder enig verzoek.
method'POST'De methode die de functie ziet
path'/'Het pad dat de functie ziet
headersgeenHeaders die aan de functie zijn gegeven. authorization, apikey, x-request-id en x-aura-* worden door het platform verwijderd.
timeoutstandaard client, 30 sMilliseconden. Annuleert de oproep en retourneert de code timeout.
signalgeenJe eigen AbortSignal. Een geannuleerde oproep retourneert de code timeout.
responseType'json'Hoe data wordt gedecodeerd: een geparseerde waarde, een string, een Blob of een ArrayBuffer

name is gecodeerd in de URL, dus een waarde die /, ? of # bevat, kan zijn positie niet verlaten. Een naam die dergelijke tekens bevat, wordt eenvoudigweg niet gevonden.

invoke vernieuwt eerst een verlopen gebruikerssessie, verzendt de JWT van de gebruiker wanneer die er is, en probeert nooit opnieuw te bellen.

Zo gebruikt u het: Roep een functie op. Hoe het mislukt: Fouten, time-outs en nieuwe pogingen.

#
Beheer

3. lijst en ontvang

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

Beide hebben een service_role-sleutel nodig. get accepteert de naam of de id; als een functie een naam heeft als een id, wint de naam. Een FunctionDef bevat de broncode en de variabelen van de functie, daarom ontvangt een publieke sleutel 403.

Er is geen methode om een functie te implementeren, bij te werken of te verwijderen, of om geheimen te schrijven: gebruik de HTTP API of de CLI.

#
Achtergrond

4. Banen

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 retourneert { code: 'bad_request', status: 400 } zonder enig verzoek wanneer functionName leeg is of alleen spaties bevat, en anders wordt de naam ingekort.
  • listJobs filtert op status (pending, running, completed, failed, dead) en retourneert tussen 1 en 500 taken, standaard 50.
  • Het opnieuw proberen van dode opdrachten heeft geen methode: zie de wachtrij voor dode letters.
#
Schema

5. Kron

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 heeft 5 of 6 velden, in UTC. deleteCronJob neemt de naam en retourneert 404 voor een onbekende naam. Er is geen getCronJob of updateCronJob.

#
Referentie

6. Typen en fouten

Geëxporteerd door @aurabase/aurabase-js en @aurabase/functions:

importstypescript
import {
  FunctionsHttpError,
  FunctionsRelayError,
  isRelayStatus,
  type FunctionsResponseType,
} from '@aurabase/aurabase-js'
ExporterenWat het is
FunctionsHttpErrorUw functie (of een beheerroute) heeft geantwoord met een fout. error.context houdt het lichaam vast dat het heeft teruggestuurd.
FunctionsRelayErrorHet platform is mislukt: netwerk (status 0) of 502, 503, 504 geproduceerd door de gateway of de runtime.
isRelayStatus(status)true voor 0, 502, 503, 504.
FunctionsResponseType`'json' \

Beide foutklassen breiden AuraError uit, dus isAuraError(error) is waar. AuraError heeft status, code, message, details, retryAfter en de getters isNotFound, isUnauthorized, isForbidden en isRateLimited.

Gegevenstypen, geëxporteerd door @aurabase/aurabase-js:

TypVelden
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? }
Achterwaarts compatibele eigenschappen

Wanneer een functie een JSON-object retourneert, heeft data ook twee niet-opsombare eigenschappen, body en status, die worden bewaard voor code die tegen oudere versies is geschreven. Vertrouw er niet op in nieuwe code.

Laatst bijgewerkt · 12 okt 2026