Logo Aurabase
aurabazadokumenty
dokumenty›Edge Functions›SDK reference

JavaScript SDK: funkcje

Każda metoda aura.functions, jej podpis, rola, której potrzebuje i co zwraca.

8 min przeczytane·Poziom odniesienie·Zmieniono 12 paź 2026
Ten tekst w języku angielskim został wygenerowany automatycznie na podstawie francuskiego oryginału i nie był jeszcze recenzowany.
Ta strona została przetłumaczona automatycznie. Wersja angielska jest miarodajna.
#
Organizować coś

1. Zdobądź klienta

aura.functions to FunctionsService. Prawie nigdy nie budujesz go sam.

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

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

Pakiet @aurabase/functions jest instalowany z @aurabase/aurabase-js. Zainstaluj go samodzielnie tylko wtedy, gdy utworzysz własnego klienta z @aurabase/core. Wymaga Node.js 20 lub nowszego i dostarcza moduły ES i CommonJS z deklaracjami typów.

Każda metoda zwraca Promise<AuraResponse<T>>, obiekt { data, error }, który nigdy nie generuje:

Sprawadataerror
Sukceswartośćnull
Sukces bez treści (204, puste ciało)nullnull
AwarianullAuraError

Jeśli potrzebujesz wartości, przetestuj data zamiast error: tylko wtedy TypeScript będzie wiedział, że to nie jest null.

MetodaPotrzebna rola
invokeklucz publiczny (anon), użytkownik lub service_role
każda inna metodaservice_role (tylko serwer)
#
Dzwonić

2. wywołać

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>>
OpcjaDomyślny
bodynicMożliwość serializacji JSON. Blob, ArrayBuffer, tablica z określonym typem, FormData, URLSearchParams lub ReadableStream zwraca błąd invalid_body bez żadnego żądania.
method'POST'Metoda widziana przez funkcję
path'/'Ścieżka, którą widzi funkcja
headersnicNagłówki nadane funkcji. authorization, apikey, x-request-id i x-aura-* są odrzucane przez platformę.
timeoutklient domyślny, 30 smilisekundy. Anuluje połączenie i zwraca kod timeout.
signalnicTwój własny AbortSignal. Anulowane połączenie zwraca kod timeout.
responseType'json'Jak dekodowany jest data: przeanalizowana wartość, ciąg znaków, Blob lub ArrayBuffer

name jest zakodowany w adresie URL, więc wartość zawierająca /, ? lub # nie może opuścić swojej pozycji. Nazwa zawierająca takie znaki po prostu nie została znaleziona.

invoke najpierw odświeża wygasłą sesję użytkownika, wysyła użytkownikowi JWT, jeśli taka istnieje, i nigdy nie ponawia próby połączenia.

Jak z tego skorzystać: Wywołaj funkcję. Jak to się nie powiedzie: Błędy, przekroczenia limitu czasu i ponowne próby.

#
Zarządzać

3. wypisz i pobierz

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

Obydwa wymagają klucza service_role. get akceptuje nazwę lub identyfikator ; jeśli funkcja ma nazwę taką jak identyfikator, wygrywa nazwa. FunctionDef zawiera kod źródłowy i zmienne funkcji, dlatego klucz publiczny otrzymuje 403.

Nie ma metody wdrażania, aktualizowania lub usuwania funkcji lub zapisywania kluczy tajnych: użyj HTTP API lub CLI.

#
Tło

4. Praca

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 zwraca { code: 'bad_request', status: 400 } bez żadnego żądania, gdy functionName jest puste lub zawiera tylko spacje, w przeciwnym razie obcina nazwę.
  • listJobs filtruje status (pending, running, completed, failed, dead) i zwraca od 1 do 500 zadań, domyślnie 50.
  • Ponawianie martwych zadań nie ma żadnej metody: zobacz kolejkę utraconych wiadomości.
#
Harmonogram

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 ma 5 lub 6 pól w formacie UTC. deleteCronJob przyjmuje nazwę i zwraca 404 dla nieznanej nazwy. Nie ma getCronJob ani updateCronJob.

#
Odniesienie

6. Rodzaje i błędy

Eksportowane przez @aurabase/aurabase-js i @aurabase/functions:

importstypescript
import {
  FunctionsHttpError,
  FunctionsRelayError,
  isRelayStatus,
  type FunctionsResponseType,
} from '@aurabase/aurabase-js'
EksportCo to jest?
FunctionsHttpErrorTwoja funkcja (lub trasa zarządzania) odpowiedziała błędem. error.context trzyma zwrócone ciało.
FunctionsRelayErrorPlatforma uległa awarii: sieć (status 0) lub 502, 503, 504 wytworzone przez bramę lub środowisko wykonawcze.
isRelayStatus(status)true dla 0, 502, 503, 504.
FunctionsResponseType`'json' \

Obie klasy błędów rozszerzają AuraError, więc isAuraError(error) ma wartość true. AuraError ma status, code, message, details, retryAfter i gettery isNotFound, isUnauthorized, isForbidden i isRateLimited.

Typy danych eksportowane przez @aurabase/aurabase-js:

TypPola
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? }
Właściwości kompatybilne wstecz

Gdy funkcja zwraca obiekt JSON, data zawiera również dwie nieprzeliczalne właściwości, body i status, przechowywane dla kodu napisanego w starszych wersjach. Nie polegaj na nich w nowym kodzie.

Ostatnia aktualizacja · 12 paź 2026