Edge Functions HTTP-API-Referenz
Die vollständige HTTP-Oberfläche des Funktionsdiensts mit der Rolle, die jede Route benötigt.
1. Konventionen
Basis-URL. Die URL Ihres Projekts, zum Beispiel https://my-app.aurabase.cloud. Das Projekt wird vom Host identifiziert, daher tragen die unten aufgeführten Pfade keine Projekt-ID. Die Langform /v1/functions/{project_id}/… wird ebenfalls akzeptiert.
Authentifizierung. Senden Sie Ihren Schlüssel im apikey-Header. Fügen Sie Authorization: Bearer <JWT> hinzu, um als angemeldeter Benutzer anzurufen. Das Studio ruft dieselben Routen mit einem Konsolensitzungstoken auf, wodurch es die Rolle admin erhält.
| Rolle | Wie Sie es bekommen | Darf anrufen |
|---|---|---|
anon | Der öffentliche Schlüssel des Projekts | POST …/invoke |
authenticated | Der öffentliche Schlüssel plus JWT eines Benutzers | POST …/invoke |
service_role | Der Schlüssel service_role (nur Server) | Jede Route unten |
admin | Eine Konsolensitzung (das Studio) | Jede Route unten |
Jede andere Route antwortet 403 bis anon und authenticated:
-Format.-Körper sind JSON und benötigen Content-Type: application/json. Ein Erfolg ist { "data": …, "meta": null }. Ein Fehler ist { "error": { "code", "message", "type", "request_id" } }.
Funktionsobjekt.
| Feld | Typ | |
|---|---|---|
id, project_id, name | Zeichenfolge | |
runtime | "deno" oder "wasm" | |
code | Zeichenfolge | Quelle für deno; base64 der kompilierten Binärdatei für wasm |
code_hash | Zeichenfolge | SHA-256 von code |
env_vars | Objekt | Schlüssel zum Wert |
permissions | Objekt | allow_net (String-Array), memory_mb, timeout_secs |
is_active | Boolescher Wert | |
created_at, updated_at | ISO 8601 |
2. Funktionen
| Methode und Weg | Rolle | Körper | Antwort |
|---|---|---|---|
GET /v1/functions | service_role | keine | Array von Funktionsobjekten |
POST /v1/functions | service_role | { name, runtime, code, env_vars? } | das Funktionsobjekt |
GET /v1/functions/{name} | service_role | keine | das Funktionsobjekt. {name} ist der Name oder die ID, wenn keine Funktion diesen Namen hat. |
PATCH /v1/functions/{name} | service_role | { code?, env_vars?, is_active?, permissions? } | das Funktionsobjekt |
DELETE /v1/functions/{name} | service_role | keine | { "data": null } |
GET /v1/functions/{name}/code | service_role | keine | { "data": { "code": "…" } } |
GET /v1/functions/{name}/env | service_role | keine | { "data": [ { "key", "value" } ] }, Werte entschlüsselt |
PUT /v1/functions/{name}/env | service_role | { "vars": [ { "key", "value" } ] } | { "data": null } |
Hinweise:
POSTist ein Upsert aufname: Durch das Posten eines vorhandenen Namens wird dessen Code ersetzt. Einenv_vars-Feld in diesem Textkörper ersetzt die vorhandenen Variablen; lassen Sie es weg, um sie zu behalten.- In
PATCHwirdpermissionsFeld für Feld zusammengeführt:{ "permissions": { "timeout_secs": 60 } }behältallow_netundmemory_mb. Ein Feld außerhalb seiner Grenzen gibt400zurück. PUT …/enversetzt den gesamten Variablensatz und ist die einzige Route, die diese verschlüsselt. Siehe Geheimnisse.- Eine Funktion mit
is_active: falsewird voninvokeoder von Jobs nicht gefunden.
3. Aufrufen
POST /v1/functions/{name}/invoke. Rolle: anon, authenticated oder service_role.
| Feld | Typ | Standard | |
|---|---|---|---|
method | Zeichenfolge | POST | Von der Funktion gesehene HTTP-Methode |
path | Zeichenfolge | / | Von der Funktion gesehener Pfad |
headers | Objekt | keine | Der Funktion übergebene Header. Reservierte Header werden gelöscht. |
body | irgendein JSON | keine | Der Funktion zugewiesener Körper |
| Anforderungsheader | |
|---|---|
apikey | Erforderlich |
Content-Type: application/json | Erforderlich |
Authorization: Bearer <JWT> | Optional: Rufen Sie als dieser Benutzer an |
X-Aurabase-Invoke-Mode: raw | Optional: Geben Sie die eigene Antwort der Funktion zurück |
Standardantwort, immer 200:
status ist der Status von Ihrer Funktion. logs ist leer für deno. Im Rohmodus ist die Antwort die eigene Ihrer Funktion: Status, content-type, Bytes plus x-aurabase-invoke-origin: function.
| Misserfolg | Status | error.code |
|---|---|---|
| Funktion nicht gefunden oder inaktiv | 404 | NOT_FOUND |
| Laufzeit nicht erreichbar | 503 | SERVICE_UNAVAILABLE |
Die Plattform hat aufgehört, auf die Laufzeit zu warten (nach timeout_secs plus einer Marge) | 504 | TIMEOUT |
| Plankontingent ausgeschöpft | 403 | QUOTA_EXCEEDED |
| Zu viele Anrufe von einem Kunden | 429 | rate_limit_exceeded |
| Körper über etwa 256 KiB | 503 | SERVICE_UNAVAILABLE |
4. Jobs und Warteschlange für unzustellbare Nachrichten
| Methode und Weg | Rolle | Text oder Abfrage | Antwort |
|---|---|---|---|
POST /v1/functions/jobs | service_role | { function_name, payload?, delay_secs?, max_attempts? } | der Job |
GET /v1/functions/jobs | service_role | ?status=&limit= (1 bis 500, Standard 50) | Reihe von Arbeitsplätzen |
GET /v1/functions/jobs/{id} | service_role | keine | der Job |
POST /v1/functions/jobs/{id}/retry | service_role | keine | der Job, zurück zu pending |
GET /v1/functions/jobs/dlq | service_role | ?limit= | Reihe toter Arbeitsplätze |
POST /v1/functions/jobs/dlq/requeue | service_role | keine | { "data": { "requeued": 1 } } |
Auftragsobjekt: id, project_id, function_name, payload, status (pending, running, completed, failed, dead), attempts, max_attempts, error, scheduled_at, started_at, completed_at, created_at. Verhalten: Jobs, Cron und die Warteschlange für unzustellbare Nachrichten.
5. Cron
| Methode und Weg | Rolle | Körper | Antwort |
|---|---|---|---|
POST /v1/functions/cron | service_role | { name, schedule, function_name, payload? } | der Cron-Eintrag |
GET /v1/functions/cron | service_role | keine | Array von Einträgen |
DELETE /v1/functions/cron/{name} | service_role | keine | { "data": null } oder 404 für einen unbekannten -Namen |
Eintrag: id, project_id, name, schedule (gespeichert mit 6 Feldern), function_name, payload, is_active, last_run, next_run, created_at.
6. Warnungen
| Methode und Weg | Rolle | Text oder Abfrage |
|---|---|---|
POST /v1/functions/alerts | service_role | { name, metric, condition, threshold, channel, destination } |
GET /v1/functions/alerts | service_role | keine |
PATCH /v1/functions/alerts/{id} | service_role | { "enabled": true } |
DELETE /v1/functions/alerts/{id} | service_role | keine |
GET /v1/functions/alerts/{id}/events | service_role | ?limit=&offset= |
GET /v1/functions/alerts/events | service_role | ?limit=&offset= |
Werte und Verhalten: Warnungen.