شعار أوراباسي
aurabaseمستندات
مستندات›Edge Functions›HTTP API reference

Edge Functions مرجع HTTP API

سطح HTTP الكامل لخدمة الوظائف، مع الدور الذي يتطلبه كل مسار.

10 د قراءة·المستوى مرجع·تمت المراجعة في 12‏/10‏/2026
تم إنشاء هذا النص الإنجليزي تلقائيًا من النص الأصلي الفرنسي ولم تتم مراجعته بعد.
تمت ترجمة هذه الصفحة تلقائيًا. النسخة الإنجليزية موثوقة.
#
الاتفاقيات

1. الاتفاقيات

عنوان URL الأساسي. عنوان 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:

403json
{ "error": { "code": "FORBIDDEN", "type": "forbidden", "request_id": "…",
  "message": "Accès interdit : Opération réservée au rôle service_role : seule l'invocation d'une fonction est ouverte aux clés publiques" } }

التنسيق. الأجسام هي JSON وتحتاج إلى Content-Type: application/json. النجاح هو { "data": …, "meta": null }. الفشل هو { "error": { "code", "message", "type", "request_id" } }.

كائن الوظيفة.

الميداناكتب
id, project_id, nameسلسلة
runtime"deno" أو "wasm"
codeسلسلةمصدر deno; base64 من الملف الثنائي المترجم لـ wasm
code_hashسلسلةSHA-256 من code
env_varsكائنمفتاح القيمة
permissionsكائنallow_net (صفيف سلسلة)، memory_mb، timeout_secs
is_activeمنطقية
created_at, updated_atايزو 8601
#
إدارة

2. الوظائف

الطريقة والمسارالدورالجسمالاستجابة
GET /v1/functionsService_roleلا شيءمجموعة من الكائنات الوظيفية
POST /v1/functionsService_role{ name, runtime, code, env_vars? }كائن الوظيفة
GET /v1/functions/{name}Service_roleلا شيءكائن الوظيفة. {name} هو الاسم أو المعرف عندما لا توجد وظيفة تحمل هذا الاسم.
PATCH /v1/functions/{name}Service_role{ code?, env_vars?, is_active?, permissions? }كائن الوظيفة
DELETE /v1/functions/{name}Service_roleلا شيء{ "data": null }
GET /v1/functions/{name}/codeService_roleلا شيء{ "data": { "code": "…" } }
GET /v1/functions/{name}/envService_roleلا شيء{ "data": [ { "key", "value" } ] }، تم فك تشفير القيم
PUT /v1/functions/{name}/envService_role{ "vars": [ { "key", "value" } ] }{ "data": null }

ملاحظات:

  • POST عبارة عن رسالة مزعجة على name: يؤدي نشر اسم موجود إلى استبدال الكود الخاص به. يستبدل الحقل env_vars في هذا النص المتغيرات الموجودة؛ تجاهلها للحفاظ عليها.
  • في PATCH، يتم دمج permissions حقلاً تلو الآخر: { "permissions": { "timeout_secs": 60 } } يحتفظ بـ allow_net و memory_mb. يُرجع الحقل الموجود خارج حدوده 400.
  • PUT …/env يستبدل مجموعة المتغيرات بأكملها وهو المسار الوحيد الذي يقوم بتشفيرها. شاهد أسرار.
  • لم يتم العثور على دالة ذات is_active: false بواسطة invoke أو بواسطة المهام.
deploy.shbash
curl -X POST "$AURA_URL/v1/functions" \
  -H "apikey: $AURA_SERVICE_ROLE_KEY" -H "Content-Type: application/json" \
  -d '{"name":"hello","runtime":"deno","code":"Deno.serve(() => new Response(\"ok\"))"}'
#
اتصل

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:

200json
{ "data": { "status": 200, "headers": { "content-type": "application/json" },
  "body": { "greeting": "Hello, Ada!" }, "logs": [], "duration_ms": 74 }, "meta": null }

status هي حالة وظيفتك. logs فارغ لـ deno. في الوضع الأولي، تكون الاستجابة خاصة بوظيفتك: الحالة، content-type، بايت، بالإضافة إلى x-aurabase-invoke-origin: function.

الفشلالحالةerror.code
لم يتم العثور على الوظيفة أو أنها غير نشطة404NOT_FOUND
وقت التشغيل غير قابل للوصول503SERVICE_UNAVAILABLE
توقفت المنصة عن انتظار وقت التشغيل (بعد timeout_secs بالإضافة إلى الهامش)504TIMEOUT
استنفدت حصة الخطة403QUOTA_EXCEEDED
عدد كبير جدًا من المكالمات من عميل واحد429rate_limit_exceeded
الجسم فوق حوالي 256 كيلو بايت503SERVICE_UNAVAILABLE
#
الخلفية

4. الوظائف وقائمة انتظار الرسائل الميتة

الطريقة والمسارالدورنص أو استعلامالاستجابة
POST /v1/functions/jobsService_role{ function_name, payload?, delay_secs?, max_attempts? }الوظيفة
GET /v1/functions/jobsService_role?status=&limit= (1 إلى 500، الافتراضي 50)مجموعة من الوظائف
GET /v1/functions/jobs/{id}Service_roleلا شيءالوظيفة
POST /v1/functions/jobs/{id}/retryService_roleلا شيءالمهمة، العودة إلى pending
GET /v1/functions/jobs/dlqService_role?limit=مجموعة من الوظائف الميتة
POST /v1/functions/jobs/dlq/requeueService_roleلا شيء{ "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/cronService_role{ name, schedule, function_name, payload? }دخول كرون
GET /v1/functions/cronService_roleلا شيءمجموعة من الإدخالات
DELETE /v1/functions/cron/{name}Service_roleلا شيء{ "data": null } أو 404 لاسم غير معروف

الإدخال: id, project_id, name, schedule (مخزن مع 6 حقول)، function_name, payload, is_active, last_run, next_run, created_at.

#
مراقب

6. التنبيهات

الطريقة والمسارالدورنص أو استعلام
POST /v1/functions/alertsService_role{ name, metric, condition, threshold, channel, destination }
GET /v1/functions/alertsService_roleلا شيء
PATCH /v1/functions/alerts/{id}Service_role{ "enabled": true }
DELETE /v1/functions/alerts/{id}Service_roleلا شيء
GET /v1/functions/alerts/{id}/eventsService_role?limit=&offset=
GET /v1/functions/alerts/eventsService_role?limit=&offset=

القيم والسلوك: التنبيهات.