Edge Functions HTTP API referansı
Her rotanın gerektirdiği rolle birlikte işlevler hizmetinin tam HTTP yüzeyi.
1. Sözleşmeler
Temel URL. Projenizin URL'si, örneğin https://my-app.aurabase.cloud. Proje, ana bilgisayar tarafından tanımlandığından aşağıdaki yollar hiçbir proje kimliği taşımamaktadır. /v1/functions/{project_id}/… uzun biçimi de kabul edilir.
Kimlik Doğrulaması. Anahtarınızı apikey başlığında gönderin. Oturum açmış kullanıcı olarak aramak için Authorization: Bearer <JWT> ekleyin. Studio aynı rotaları bir konsol oturum belirteciyle çağırır ve bu ona admin rolünü verir.
| Rol | Nasıl anladın | Arayabilir |
|---|---|---|
anon | Projenin genel anahtarı | POST …/invoke |
authenticated | Genel anahtar artı kullanıcının JWT | POST …/invoke |
service_role | service_role anahtarı (yalnızca sunucu) | Aşağıdaki her rota |
admin | Bir konsol oturumu (Stüdyo) | Aşağıdaki her rota |
Başka herhangi bir rota 403 ile anon ve authenticated yanıtını verir:
Biçimi. Gövdeler JSON'dur ve Content-Type: application/json gerekir. Başarı { "data": …, "meta": null }. Bir başarısızlık { "error": { "code", "message", "type", "request_id" } }.
İşlev nesnesi.
| Alan | Tür | |
|---|---|---|
id, project_id, name | dize | |
runtime | "deno" veya "wasm" | |
code | dize | deno kaynağı; wasm için derlenmiş ikili dosyanın base64'ü |
code_hash | dize | code SHA-256 |
env_vars | nesne | Değerin anahtarı |
permissions | nesne | allow_net (dize dizisi), memory_mb, timeout_secs |
is_active | boolean | |
created_at, updated_at | ISO8601 |
2. İşlevler
| Yöntem ve yol | Rol | Vücut | Yanıt |
|---|---|---|---|
GET /v1/functions | hizmet_rolü | hiçbiri | işlev nesneleri dizisi |
POST /v1/functions | hizmet_rolü | { name, runtime, code, env_vars? } | işlev nesnesi |
GET /v1/functions/{name} | hizmet_rolü | hiçbiri | işlev nesnesi. {name} addır veya bu ada sahip hiçbir işlev olmadığında kimliktir. |
PATCH /v1/functions/{name} | hizmet_rolü | { code?, env_vars?, is_active?, permissions? } | işlev nesnesi |
DELETE /v1/functions/{name} | hizmet_rolü | hiçbiri | { "data": null } |
GET /v1/functions/{name}/code | hizmet_rolü | hiçbiri | { "data": { "code": "…" } } |
GET /v1/functions/{name}/env | hizmet_rolü | hiçbiri | { "data": [ { "key", "value" } ] }, değerlerin şifresi çözüldü |
PUT /v1/functions/{name}/env | hizmet_rolü | { "vars": [ { "key", "value" } ] } | { "data": null } |
Notlar:
POST,nameüzerinde bir üst öğedir: mevcut bir adın gönderilmesi, kodunun yerine geçer. Bu gövdedeki birenv_varsalanı mevcut değişkenlerin yerini alır; onları tutmak için bunu ihmal edin.PATCHiçinde,permissionsalan alan birleştirilir:{ "permissions": { "timeout_secs": 60 } },allow_netvememory_mbtutar. Sınırlarının dışındaki bir alan400değerini döndürür.PUT …/envtüm değişken kümesinin yerine geçer ve bunları şifreleyen tek yoldur. sırlarına bakın.is_active: falseiçeren bir işlevinvokeveya işler tarafından bulunamadı.
3. Çağır
POST /v1/functions/{name}/invoke. Rol: anon, authenticated veya service_role.
| Alan | Tür | Varsayılan | |
|---|---|---|---|
method | dize | POST | İşlev tarafından görülen HTTP yöntemi |
path | dize | / | İşlev tarafından görülen yol |
headers | nesne | hiçbiri | Fonksiyona verilen başlıklar. Ayrılmış başlıklar bırakılır. |
body | herhangi bir JSON | hiçbiri | Fonksiyona verilen gövde |
| İstek başlığı | |
|---|---|
apikey | Gerekli |
Content-Type: application/json | Gerekli |
Authorization: Bearer <JWT> | İsteğe bağlı: söz konusu kullanıcı olarak çağrı yapın |
X-Aurabase-Invoke-Mode: raw | İsteğe bağlı: işlevin kendi yanıtını döndür |
Varsayılan yanıt, her zaman 200:
status, işlevinizin durumudur. logs deno için boş. Ham modda yanıt, işlevinizin kendisine aittir: durum, content-type, bayt artı x-aurabase-invoke-origin: function.
| Başarısızlık | Durum | error.code |
|---|---|---|
| İşlev bulunamadı veya etkin değil | 404 | NOT_FOUND |
| Çalışma zamanına ulaşılamıyor | 503 | SERVICE_UNAVAILABLE |
Platform çalışma zamanını beklemeyi bıraktı (timeout_secs artı bir kenar boşluğundan sonra) | 504 | TIMEOUT |
| Plan kotası doldu | 403 | QUOTA_EXCEEDED |
| Bir müşteriden çok fazla çağrı | 429 | rate_limit_exceeded |
| Yaklaşık 256 KiB'nin üzerindeki gövde | 503 | SERVICE_UNAVAILABLE |
4. İşler ve teslim edilmeyen mektup kuyruğu
| Yöntem ve yol | Rol | Gövde veya sorgu | Yanıt |
|---|---|---|---|
POST /v1/functions/jobs | hizmet_rolü | { function_name, payload?, delay_secs?, max_attempts? } | iş |
GET /v1/functions/jobs | hizmet_rolü | ?status=&limit= (1 ila 500, varsayılan 50) | iş dizisi |
GET /v1/functions/jobs/{id} | hizmet_rolü | hiçbiri | iş |
POST /v1/functions/jobs/{id}/retry | hizmet_rolü | hiçbiri | iş, pending'e geri dön |
GET /v1/functions/jobs/dlq | hizmet_rolü | ?limit= | ölü işler dizisi |
POST /v1/functions/jobs/dlq/requeue | hizmet_rolü | hiçbiri | { "data": { "requeued": 1 } } |
İş nesnesi: id, project_id, function_name, payload, status (pending, running, completed, failed, dead), attempts, max_attempts, error, scheduled_at, started_at, completed_at, created_at. Davranış: İşler, cron ve atılacak ileti kuyruğu.
5. Cron
| Yöntem ve yol | Rol | Vücut | Yanıt |
|---|---|---|---|
POST /v1/functions/cron | hizmet_rolü | { name, schedule, function_name, payload? } | cron girişi |
GET /v1/functions/cron | hizmet_rolü | hiçbiri | giriş dizisi |
DELETE /v1/functions/cron/{name} | hizmet_rolü | hiçbiri | { "data": null } veya bilinmeyen bir adı için 404 |
Giriş: id, project_id, name, schedule (6 alanla saklanır), function_name, payload, is_active, last_run, next_run, created_at.
6. Uyarılar
| Yöntem ve yol | Rol | Gövde veya sorgu |
|---|---|---|
POST /v1/functions/alerts | hizmet_rolü | { name, metric, condition, threshold, channel, destination } |
GET /v1/functions/alerts | hizmet_rolü | hiçbiri |
PATCH /v1/functions/alerts/{id} | hizmet_rolü | { "enabled": true } |
DELETE /v1/functions/alerts/{id} | hizmet_rolü | hiçbiri |
GET /v1/functions/alerts/{id}/events | hizmet_rolü | ?limit=&offset= |
GET /v1/functions/alerts/events | hizmet_rolü | ?limit=&offset= |
Değerler ve davranış: Uyarılar.