Logo Aurabase
aurabasedocumenti
documenti›Edge Functions›SDK reference

SDK JavaScript: funzioni

Ogni metodo di aura.functions, la sua firma, il ruolo di cui ha bisogno e cosa restituisce.

8 min letto·Livello riferimento·Revisionato il 12 ott 2026
Questo testo inglese è stato generato automaticamente dall'originale francese e non è stato ancora rivisto.
Questa pagina è stata tradotta automaticamente. Fa fede la versione inglese.
#
Installazione

1. Ottieni il cliente

aura.functions è un FunctionsService. Non te lo costruisci quasi mai da solo.

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

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

Il pacchetto @aurabase/functions viene installato con @aurabase/aurabase-js. Installalo da solo solo se componi il tuo client da @aurabase/core. Richiede Node.js 20 o successivo e fornisce moduli ES e CommonJS con dichiarazioni di tipo.

Ogni metodo restituisce Promise<AuraResponse<T>>, un oggetto { data, error } che non lancia mai:

Casodataerror
Successoil valorenull
Successo senza contenuto (204, corpo vuoto)nullnull
Fallimentonullun AuraError

Prova data anziché error quando hai bisogno del valore: solo allora TypeScript sa che non è null.

MetodoRuolo necessario
invokechiave pubblica (anon), utente o service_role
ogni altro metodoservice_role (solo server)
#
Chiama

2. invocare

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>>
OpzionePredefinito
bodynessunoSerializzabile in JSON. Un Blob, ArrayBuffer, array digitato, FormData, URLSearchParams o ReadableStream restituisce l'errore invalid_body senza alcuna richiesta.
method'POST'Il metodo visto dalla funzione
path'/'Il percorso visualizzato dalla funzione
headersnessunoIntestazioni assegnate alla funzione. authorization, apikey, x-request-id e x-aura-* vengono scartati dalla piattaforma.
timeoutimpostazione predefinita del client, 30 sMillisecondi. Annulla la chiamata e restituisce il codice timeout.
signalnessunoIl tuo AbortSignal. Una chiamata annullata restituisce il codice timeout.
responseType'json'Come viene decodificato data: un valore analizzato, una stringa, un Blob o un ArrayBuffer

name è codificato nell'URL, quindi un valore contenente /, ? o # non può lasciare la sua posizione. Un nome che contenga tali caratteri semplicemente non viene trovato.

invoke aggiorna prima una sessione utente scaduta, invia JWT dell'utente quando ce n'è una e non ritenta mai una chiamata.

Come usarlo: Invoca una funzione. Come fallisce: Errori, timeout e tentativi.

#
Gestisci

3. elenca e ottieni

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

Entrambi necessitano di una chiave service_role. get accetta il nome o l'id; se una funzione ha un nome simile a un ID, il nome vince. Un FunctionDef contiene il codice sorgente e le variabili della funzione, motivo per cui una chiave pubblica riceve 403.

Non esiste un metodo per distribuire, aggiornare o eliminare una funzione o per scrivere segreti: utilizzare API HTTP o CLI.

#
Sfondo

4. Lavori

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 restituisce { code: 'bad_request', status: 400 } senza alcuna richiesta quando functionName è vuoto o contiene solo spazi e altrimenti taglia il nome.
  • listJobs filtra su status (pending, running, completed, failed, dead) e restituisce tra 1 e 500 lavori, 50 per impostazione predefinita.
  • Il tentativo di riprovare i lavori morti non ha metodo: vedere la coda di messaggi non recapitati.
#
Programma

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 ha 5 o 6 campi, in UTC. deleteCronJob accetta il nome e restituisce 404 per un nome sconosciuto. Non esiste getCronJob o updateCronJob.

#
Riferimento

6. Tipologie ed errori

Esportato da @aurabase/aurabase-js e @aurabase/functions:

importstypescript
import {
  FunctionsHttpError,
  FunctionsRelayError,
  isRelayStatus,
  type FunctionsResponseType,
} from '@aurabase/aurabase-js'
EsportazioneDi cosa si tratta
FunctionsHttpErrorLa tua funzione (o un percorso di gestione) ha risposto con un errore. error.context contiene il corpo restituito.
FunctionsRelayErrorLa piattaforma non è riuscita: rete (status 0) o 502, 503, 504 prodotta dal gateway o dal runtime.
isRelayStatus(status)true per 0, 502, 503, 504.
FunctionsResponseType`'json' \

Entrambe le classi di errore estendono AuraError, quindi isAuraError(error) è vero. AuraError ha status, code, message, details, retryAfter e i getter isNotFound, isUnauthorized, isForbidden e isRateLimited.

Tipi di dati esportati da @aurabase/aurabase-js:

DigitareCampi
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? }
Proprietà compatibili con le versioni precedenti

Quando una funzione restituisce un oggetto JSON, data trasporta anche due proprietà non enumerabili, body e status, mantenute per il codice scritto rispetto alle versioni precedenti. Non fare affidamento su di essi nel nuovo codice.

Ultimo aggiornamento · 12 ott 2026