Edge Functions HTTP एपीआई संदर्भ
फ़ंक्शन सेवा की संपूर्ण HTTP सतह, प्रत्येक रूट के लिए आवश्यक भूमिका के साथ।
1. कन्वेंशन
बेस यूआरएल. आपके प्रोजेक्ट का URL, उदाहरण के लिए https://my-app.aurabase.cloud। प्रोजेक्ट की पहचान होस्ट द्वारा की जाती है, इसलिए नीचे दिए गए पथों में कोई प्रोजेक्ट आईडी नहीं है। लंबा फॉर्म /v1/functions/{project_id}/… भी स्वीकार किया जाता है।
प्रमाणीकरण. अपनी कुंजी apikey हेडर में भेजें। साइन-इन उपयोगकर्ता के रूप में कॉल करने के लिए Authorization: Bearer <JWT> जोड़ें। स्टूडियो उन्हीं मार्गों को कंसोल सत्र टोकन के साथ कॉल करता है, जो इसे admin भूमिका देता है।
| भूमिका | आप इसे कैसे प्राप्त करते हैं | कॉल कर सकते हैं |
|---|---|---|
anon | परियोजना की सार्वजनिक कुंजी | POST …/invoke |
authenticated | सार्वजनिक कुंजी और उपयोगकर्ता की JWT | POST …/invoke |
service_role | service_role कुंजी (केवल सर्वर) | नीचे हर मार्ग |
admin | एक कंसोल सत्र (स्टूडियो) | नीचे हर मार्ग |
कोई अन्य मार्ग 403 से anon और authenticated का उत्तर देता है:
प्रारूप. निकाय JSON हैं और उन्हें Content-Type: application/json की आवश्यकता है। एक सफलता { "data": …, "meta": null } है। एक विफलता { "error": { "code", "message", "type", "request_id" } } है।
फ़ंक्शन ऑब्जेक्ट।
| मैदान | प्रकार | |
|---|---|---|
id, project_id, name | डोरी | |
runtime | "deno" या "wasm" | |
code | डोरी | deno के लिए स्रोत; wasm के लिए संकलित बाइनरी का बेस64 |
code_hash | डोरी | code का SHA-256 |
env_vars | वस्तु | मूल्य की कुंजी |
permissions | वस्तु | allow_net (स्ट्रिंग सरणी), memory_mb, timeout_secs |
is_active | बूलियन | |
created_at, updated_at | आईएसओ 8601 |
2. कार्य
| विधि और मार्ग | भूमिका | शरीर | प्रतिक्रिया |
|---|---|---|---|
GET /v1/functions | सेवा_भूमिका | कोई नहीं | फ़ंक्शन ऑब्जेक्ट की सरणी |
POST /v1/functions | सेवा_भूमिका | { name, runtime, code, env_vars? } | फ़ंक्शन ऑब्जेक्ट |
GET /v1/functions/{name} | सेवा_भूमिका | कोई नहीं | फ़ंक्शन ऑब्जेक्ट. {name} वह नाम या आईडी है जब किसी फ़ंक्शन का वह नाम नहीं है। |
PATCH /v1/functions/{name} | सेवा_भूमिका | { code?, env_vars?, is_active?, permissions? } | फ़ंक्शन ऑब्जेक्ट |
DELETE /v1/functions/{name} | सेवा_भूमिका | कोई नहीं | { "data": null } |
GET /v1/functions/{name}/code | सेवा_भूमिका | कोई नहीं | { "data": { "code": "…" } } |
GET /v1/functions/{name}/env | सेवा_भूमिका | कोई नहीं | { "data": [ { "key", "value" } ] }, मान डिक्रिप्ट किया गया |
PUT /v1/functions/{name}/env | सेवा_भूमिका | { "vars": [ { "key", "value" } ] } | { "data": null } |
टिप्पणियाँ:
POSTnameका एक संस्करण है: किसी मौजूदा नाम को पोस्ट करने से उसका कोड बदल जाता है। उस निकाय में एकenv_varsफ़ील्ड मौजूदा चर को प्रतिस्थापित करता है; उन्हें रखने के लिए इसे छोड़ दें.PATCHमें,permissionsको फ़ील्ड दर फ़ील्ड मर्ज किया जाता है:{ "permissions": { "timeout_secs": 60 } }allow_netऔरmemory_mbरखता है। अपनी सीमा के बाहर का फ़ील्ड400लौटाता है।PUT …/envवेरिएबल के पूरे सेट को प्रतिस्थापित करता है और यह एकमात्र मार्ग है जो उन्हें एन्क्रिप्ट करता है। रहस्य देखें।is_active: falseवाला फ़ंक्शनinvokeया नौकरियों द्वारा नहीं पाया जाता है।
3.आह्वान करना
POST /v1/functions/{name}/invoke. भूमिका: anon, authenticated या service_role।
| मैदान | प्रकार | गलती करना | |
|---|---|---|---|
method | डोरी | POST | HTTP विधि फ़ंक्शन द्वारा देखी गई |
path | डोरी | / | फ़ंक्शन द्वारा देखा गया पथ |
headers | वस्तु | कोई नहीं | समारोह को हेडर दिए गए। आरक्षित शीर्षलेख हटा दिए गए हैं. |
body | कोई भी JSON | कोई नहीं | समारोह को दिया गया शरीर |
| हेडर का अनुरोध करें | |
|---|---|
apikey | आवश्यक |
Content-Type: application/json | आवश्यक |
Authorization: Bearer <JWT> | वैकल्पिक: उस उपयोगकर्ता के रूप में कॉल करें |
X-Aurabase-Invoke-Mode: raw | वैकल्पिक: फ़ंक्शन की अपनी प्रतिक्रिया लौटाएँ |
डिफ़ॉल्ट प्रतिक्रिया, हमेशा 200:
status आपके फ़ंक्शन की स्थिति है। logs deno के लिए खाली है। रॉ मोड में प्रतिक्रिया आपके फ़ंक्शन की अपनी होती है: स्थिति, content-type, बाइट्स, प्लस x-aurabase-invoke-origin: function।
| असफलता | स्थिति | error.code |
|---|---|---|
| फ़ंक्शन नहीं मिला या निष्क्रिय | 404 | NOT_FOUND |
| रनटाइम पहुंच योग्य नहीं है | 503 | SERVICE_UNAVAILABLE |
प्लेटफ़ॉर्म ने रनटाइम की प्रतीक्षा करना बंद कर दिया (timeout_secs प्लस मार्जिन के बाद) | 504 | TIMEOUT |
| योजना कोटा समाप्त हो गया | 403 | QUOTA_EXCEEDED |
| एक ग्राहक से बहुत अधिक कॉलें | 429 | rate_limit_exceeded |
| लगभग 256 KiB से ऊपर का शरीर | 503 | SERVICE_UNAVAILABLE |
4. नौकरियाँ और डेड-लेटर कतार
| विधि और मार्ग | भूमिका | शरीर या क्वेरी | प्रतिक्रिया |
|---|---|---|---|
POST /v1/functions/jobs | सेवा_भूमिका | { function_name, payload?, delay_secs?, max_attempts? } | काम |
GET /v1/functions/jobs | सेवा_भूमिका | ?status=&limit= (1 से 500, डिफ़ॉल्ट 50) | नौकरियों की श्रृंखला |
GET /v1/functions/jobs/{id} | सेवा_भूमिका | कोई नहीं | काम |
POST /v1/functions/jobs/{id}/retry | सेवा_भूमिका | कोई नहीं | नौकरी, pending पर वापस |
GET /v1/functions/jobs/dlq | सेवा_भूमिका | ?limit= | मृत नौकरियों की श्रृंखला |
POST /v1/functions/jobs/dlq/requeue | सेवा_भूमिका | कोई नहीं | { "data": { "requeued": 1 } } |
कार्य वस्तु: id, project_id, function_name, payload, status (pending, running, completed, failed, dead), attempts, max_attempts, error, scheduled_at, started_at, completed_at, created_at। व्यवहार: जॉब्स, क्रॉन और डेड-लेटर कतार।
5. क्रोन
| विधि और मार्ग | भूमिका | शरीर | प्रतिक्रिया |
|---|---|---|---|
POST /v1/functions/cron | सेवा_भूमिका | { name, schedule, function_name, payload? } | क्रॉन प्रविष्टि |
GET /v1/functions/cron | सेवा_भूमिका | कोई नहीं | प्रविष्टियों की सरणी |
DELETE /v1/functions/cron/{name} | सेवा_भूमिका | कोई नहीं | { "data": null }, या 404 किसी अज्ञात नाम के लिए |
प्रविष्टि: id, project_id, name, schedule (6 फ़ील्ड के साथ संग्रहीत), function_name, payload, is_active, last_run, next_run, created_at।
6. अलर्ट
| विधि और मार्ग | भूमिका | शरीर या क्वेरी |
|---|---|---|
POST /v1/functions/alerts | सेवा_भूमिका | { name, metric, condition, threshold, channel, destination } |
GET /v1/functions/alerts | सेवा_भूमिका | कोई नहीं |
PATCH /v1/functions/alerts/{id} | सेवा_भूमिका | { "enabled": true } |
DELETE /v1/functions/alerts/{id} | सेवा_भूमिका | कोई नहीं |
GET /v1/functions/alerts/{id}/events | सेवा_भूमिका | ?limit=&offset= |
GET /v1/functions/alerts/events | सेवा_भूमिका | ?limit=&offset= |
मूल्य और व्यवहार: अलर्ट।