Edge Functions Riferimento API HTTP
La superficie HTTP completa del servizio funzioni, con il ruolo richiesto da ogni percorso.
1. Convenzioni
URL di base. L'URL del tuo progetto, ad esempio https://my-app.aurabase.cloud. Il progetto è identificato dall'host, quindi i percorsi seguenti non riportano un ID progetto. È accettata anche la forma lunga /v1/functions/{project_id}/….
Autenticazione. Invia la tua chiave nell'intestazione apikey. Aggiungi Authorization: Bearer <JWT> per chiamare come utente registrato. Lo Studio chiama gli stessi percorsi con un token di sessione della console, che gli conferisce il ruolo admin.
| Ruolo | Come lo ottieni | Può chiamare |
|---|---|---|
anon | La chiave pubblica del progetto | POST …/invoke |
authenticated | La chiave pubblica più JWT dell'utente | POST …/invoke |
service_role | La chiave service_role (solo server) | Ogni percorso qui sotto |
admin | Una sessione in console (lo Studio) | Ogni percorso qui sotto |
Qualsiasi altro percorso risponde 403 a anon e authenticated:
Formato. I corpi sono JSON e necessitano di Content-Type: application/json. Un successo è { "data": …, "meta": null }. Un errore è { "error": { "code", "message", "type", "request_id" } }.
Oggetto funzione.
| Campo | Digitare | |
|---|---|---|
id, project_id, name | stringa | |
runtime | "deno" o "wasm" | |
code | stringa | Sorgente per deno; base64 del binario compilato per wasm |
code_hash | stringa | SHA-256 di code |
env_vars | oggetto | Chiave per il valore |
permissions | oggetto | allow_net (array di stringhe), memory_mb, timeout_secs |
is_active | booleano | |
created_at, updated_at | ISO8601 |
2. Funzioni
| Metodo e percorso | Ruolo | Corpo | Risposta |
|---|---|---|---|
GET /v1/functions | service_role | nessuno | matrice di oggetti funzione |
POST /v1/functions | service_role | { name, runtime, code, env_vars? } | l'oggetto funzione |
GET /v1/functions/{name} | service_role | nessuno | l'oggetto funzione. {name} è il nome o l'id quando nessuna funzione ha quel nome. |
PATCH /v1/functions/{name} | service_role | { code?, env_vars?, is_active?, permissions? } | l'oggetto funzione |
DELETE /v1/functions/{name} | service_role | nessuno | { "data": null } |
GET /v1/functions/{name}/code | service_role | nessuno | { "data": { "code": "…" } } |
GET /v1/functions/{name}/env | service_role | nessuno | { "data": [ { "key", "value" } ] }, valori decrittografati |
PUT /v1/functions/{name}/env | service_role | { "vars": [ { "key", "value" } ] } | { "data": null } |
Note:
POSTè un upsert suname: pubblicare un nome esistente ne sostituisce il codice. Un campoenv_varsin quel corpo sostituisce le variabili esistenti; omettilo per mantenerli.- In
PATCH,permissionsviene unito campo per campo:{ "permissions": { "timeout_secs": 60 } }mantieneallow_netememory_mb. Un campo fuori dai suoi limiti restituisce400. PUT …/envsostituisce l'intero set di variabili ed è l'unico percorso che le crittografa. Vedi segreti.- Una funzione con
is_active: falsenon viene trovata dainvokeo dai lavori.
3. Invocare
POST /v1/functions/{name}/invoke. Ruolo: anon, authenticated o service_role.
| Campo | Digitare | Predefinito | |
|---|---|---|---|
method | stringa | POST | Metodo HTTP visto dalla funzione |
path | stringa | / | Percorso visto dalla funzione |
headers | oggetto | nessuno | Intestazioni assegnate alla funzione. Le intestazioni riservate vengono eliminate. |
body | qualsiasi JSON | nessuno | Corpo deputato alla funzione |
| Intestazione della richiesta | |
|---|---|
apikey | Obbligatorio |
Content-Type: application/json | Obbligatorio |
Authorization: Bearer <JWT> | Facoltativo: chiama come quell'utente |
X-Aurabase-Invoke-Mode: raw | Facoltativo: restituisce la risposta della funzione |
Risposta predefinita, sempre 200:
status è lo stato di la tua funzione. logs è vuoto per deno. In modalità raw la risposta è quella della tua funzione: status, content-type, byte, più x-aurabase-invoke-origin: function.
| Fallimento | Stato | error.code |
|---|---|---|
| Funzione non trovata o inattiva | 404 | NOT_FOUND |
| Tempo di esecuzione irraggiungibile | 503 | SERVICE_UNAVAILABLE |
La piattaforma ha smesso di attendere il runtime (dopo timeout_secs più un margine) | 504 | TIMEOUT |
| Quota del piano esaurita | 403 | QUOTA_EXCEEDED |
| Troppe chiamate da un cliente | 429 | rate_limit_exceeded |
| Corpo superiore a circa 256 KiB | 503 | SERVICE_UNAVAILABLE |
4. Lavori e coda di messaggi non recapitabili
| Metodo e percorso | Ruolo | Corpo o query | Risposta |
|---|---|---|---|
POST /v1/functions/jobs | service_role | { function_name, payload?, delay_secs?, max_attempts? } | il lavoro |
GET /v1/functions/jobs | service_role | ?status=&limit= (da 1 a 500, predefinito 50) | serie di lavori |
GET /v1/functions/jobs/{id} | service_role | nessuno | il lavoro |
POST /v1/functions/jobs/{id}/retry | service_role | nessuno | il lavoro, torniamo a pending |
GET /v1/functions/jobs/dlq | service_role | ?limit= | serie di lavori morti |
POST /v1/functions/jobs/dlq/requeue | service_role | nessuno | { "data": { "requeued": 1 } } |
Oggetto lavoro: id, project_id, function_name, payload, status (pending, running, completed, failed, dead), attempts, max_attempts, error, scheduled_at, started_at, completed_at, created_at. Comportamento: Job, cron e coda dei messaggi non recapitati.
5. Cron
| Metodo e percorso | Ruolo | Corpo | Risposta |
|---|---|---|---|
POST /v1/functions/cron | service_role | { name, schedule, function_name, payload? } | la voce cron |
GET /v1/functions/cron | service_role | nessuno | serie di voci |
DELETE /v1/functions/cron/{name} | service_role | nessuno | { "data": null } o 404 per un nome sconosciuto |
Voce: id, project_id, name, schedule (memorizzato con 6 campi), function_name, payload, is_active, last_run, next_run, created_at.
6. Avvisi
| Metodo e percorso | Ruolo | Corpo o query |
|---|---|---|
POST /v1/functions/alerts | service_role | { name, metric, condition, threshold, channel, destination } |
GET /v1/functions/alerts | service_role | nessuno |
PATCH /v1/functions/alerts/{id} | service_role | { "enabled": true } |
DELETE /v1/functions/alerts/{id} | service_role | nessuno |
GET /v1/functions/alerts/{id}/events | service_role | ?limit=&offset= |
GET /v1/functions/alerts/events | service_role | ?limit=&offset= |
Valori e comportamento: Avvisi.