وظائف الهالة وأسرار الهالة
كل أمر aura functions وaura secrets بخياراته والملفات التي يقرأها والبيئة التي يحتاجها.
1. الإعداد
تحتاج الأوامر التي تتحدث إلى مشروعك إلى ثلاثة أشياء:
| حاجة | كيف |
|---|---|
| جلسة | aura login ثم aura link --project-id <uuid> والذي يكتب aurabase.toml |
| عنوان URL للمشروع | AURA_PROJECT_URL أو project_url في aurabase.toml |
مفتاح service_role | AURA_API_KEY أو AURA_SERVICE_ROLE_KEY، في البيئة أو في ملف .env |
| متغير | الافتراضي | الدور |
|---|---|---|
AURA_GATEWAY_URL | https://api.aurabase.cloud | واجهة برمجة تطبيقات الإدارة المستخدمة بواسطة login و orgs و projects. قم بتعيينه بشكل صريح عند العمل ضد مكدس آخر: الافتراضي هو السحابة المستضافة. |
AURA_PROJECT_URL | project_url من aurabase.toml | مستوى البيانات لمشروعك |
AURA_STUDIO_URL | http://localhost:3000 | تم افتتاح الاستوديو بواسطة aura studio |
بدون AURA_GATEWAY_URL و aura login و aura projects create تحدث إلى https://api.aurabase.cloud. قم بتصدير عنوان URL للمكدس الخاص بك قبل اختباره.
2. وظائف الهالة
aura functions new <name> [--runtime deno|wasm]
يتم إنشاء aurabase/functions/<name>/. وقت التشغيل الافتراضي هو deno (قالب TypeScript مع index.ts وdeno.json). باستخدام --runtime wasm، يتم إنشاء صندوق Rust (Cargo.toml, src/lib.rs). يرفض اسمًا موجودًا.
aura functions serve [name] [--port 54321]
يتم تشغيل index.ts أو index.js مع deno run --allow-net --allow-env --allow-read --watch، بحيث يتم إعادة تشغيل الوظيفة عند الحفظ. يحتاج إلى تثبيت Deno؛ وبدون ذلك، يشرح الأمر كيفية تثبيته. بدون اسم، فهو يسرد الوظائف المحلية.
يستمع الخادم إلى http://127.0.0.1:<port> وتتلقى الوظيفة الطلب كما هو الحال في الإنتاج (الطريقة، المسار، الرؤوس، النص)، بدون النظام الأساسي: لا توجد رؤوس هوية x-aura-*، لا أسرار، لا حدود. تم تعيين PORT وDENO_SERVE_ADDRESS لك، لذا يستخدم Deno.serve(handler) العادي المنفذ المختار.
لا يمكن تقديم وظيفة WASM محليًا: يطبع الأمر كيفية نشرها.
aura functions deploy <name>
يقرأ index.ts (أو index.js) ويرسله إلى المشروع، مما يؤدي إلى إنشاء الوظيفة أو استبدالها. يتم الاحتفاظ بالأسرار الموجودة. بالنسبة للدالة التي لا تحتوي على index.ts أو index.js، فإنها تقوم بتشغيل cargo build --target wasm32-unknown-unknown --release وترسل الملف الثنائي المترجم.
الدالة Deno عبارة عن ملف واحد : يرفض الأمر عمليات الاستيراد النسبية (./helper.ts, ../lib.ts). استخدم عمليات الاستيراد عن بعد (npm:<package> أو https://esm.sh/<package>) أو قم بتضمين الكود.
aura functions invoke <name> [--data '<json>']
يستدعي الوظيفة المنشورة ويطبع مظروف الاستجابة. --data هو نص الطلب. يعد --data غير الصالح JSON خطأً: لم يتم استبداله بـ {}.
aura functions list [--json]
يسرد الوظائف المحلية مع وقت التشغيل الخاص بها (Deno / TypeScript أو Rust / WASM) وعندما يكون المشروع مرتبطًا، يتم نشر الوظائف باستخدام actif أو inactif.
aura functions logs <name> [--limit 50]
يسرد طلبات HTTP الأخيرة للوظيفة: الوقت والطريقة والمسار والحالة والمدة ومعرف الطلب. لا يُظهر ولا مخرجات الكود الخاص بك (console.log). راجع حدود .
aura functions download <name>
يكتب الكود المنشور إلى aurabase/functions/<name>/: index.ts لوظيفة Deno، <name>.wasm لوظيفة WASM. لا يتم تخزين مصدر Rust لوظيفة WASM على الخادم.
aura functions delete <name> [--force]
حذف الوظيفة المنشورة بعد التأكيد. --force (أو -f) يتخطى التأكيد الذي تحتاجه في البرامج النصية.
3. أسرار الهالة
| القيادة | تأثير |
|---|---|
aura secrets list --function <name> [--json] | يسرد المفاتيح. القيم مقنعة (sk_l***) |
aura secrets set --function <name> KEY=VALUE … | يضيف أو يحدّث المفاتيح، ويحتفظ بالمفاتيح الأخرى |
aura secrets unset --function <name> KEY … | يزيل المفاتيح |
--function يمكن كتابته -f. تقوم هذه الأوامر بتخزين القيم كما هي ولا تقوم بتشفيرها: راجع الأسرار والبيئة للتعرف على المسار المشفر.