شعار أوراباسي
aurabaseمستندات
مستندات›Edge Functions›Secrets and environment

أسرار ومتغيرات البيئة

كيفية تمرير مفتاح Stripe أو أي إعداد إلى وظيفة دون كتابته في الكود، وما الذي تحميه المنصة فعليًا.

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

1. قم بتعيين متغير

كل متغير ينتمي إلى وظيفة واحدة. يحتاج إعداد المتغيرات إلى مفتاح service_role.

terminalbash
aura secrets set --function checkout STRIPE_SECRET_KEY=sk_live_… WEBHOOK_SECRET=whsec_…
aura secrets list --function checkout     # القيم مقنعة: STRIPE_SECRET_KEY sk_l***
aura secrets unset --function checkout WEBHOOK_SECRET
terminalbash
curl -X PUT "$AURA_URL/v1/functions/checkout/env" \
  -H "apikey: $AURA_SERVICE_ROLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"vars":[{"key":"STRIPE_SECRET_KEY","value":"sk_live_…"}]}'

PUT /env يستبدل مجموعة المتغيرات بأكملها بالقائمة التي ترسلها. aura secrets set وunset قم بقراءة القيم الحالية، وقم بتغيير المفاتيح التي تسميها واكتب النتيجة مرة أخرى.

إعادة الانتشار تحافظ على أسرارك

يؤدي نشر التعليمات البرمجية الجديدة باستخدام aura functions deploy إلى ترك المتغيرات دون تغيير.

#
اقرأ

2. اقرأها في الدالة

aurabase/functions/checkout/index.tstypescript
Deno.serve(async (req) => {
  const key = Deno.env.get('STRIPE_SECRET_KEY')
  if (!key) return new Response('STRIPE_SECRET_KEY is not set', { status: 500 })
  // ... اتصل بـ Stripe باستخدام "المفتاح".
  return Response.json({ ok: true })
})

تتم قراءة المتغيرات عند كل استدعاء: ينطبق التغيير على الاستدعاء التالي.

#
حقن

3. المتغيرات التي تضيفها المنصة

متغيرالقيمة
AURABASE_PROJECT_IDمعرف المشروع تعيين دائما.
AURABASE_FUNCTION_NAMEاسم الوظيفة. تعيين دائما.
AURABASE_URLعنوان URL الخاص بالمنصة، عندما يحدده مشغل المنصة.
AURABASE_ANON_KEYمفتاح النظام الأساسي، عندما يحدده المشغل.

لا يمكنك تجاوز هذه الأسماء. بيئة المضيف غير مرئية لوظيفتك: في التشغيل الحقيقي، تم إرجاع Deno.env.get('PATH') undefined.

لاستدعاء مشروعك الخاص من إحدى الوظائف، قم بتخزين مفتاح service_role باعتباره سر تلك الوظيفة وأرسله في رأس apikey لطلب HTTP. لا تقم أبدًا بإعادة توجيه مفتاح المستخدم، ولا تضع أبدًا مفتاح service_role في المتصفح.

#
الحماية

4. ما هو مشفر

المسارمشفرة في بقية
PUT /v1/functions/{name}/envنعم، إذا كانت تحتوي الخدمة على مفتاح تشفير تم تكوينه (FN_ENV_ENCRYPTION_KEY, AES-256-GCM). وبدون ذلك، يتم تخزين القيم كما تم إرسالها وتسجل الخدمة تحذيرًا عند البداية.
aura secrets set / unsetلا: تكتب واجهة سطر الأوامر (CLI) من خلال PATCH، الذي يخزن القيم كما تم إرسالها.
env_vars في طلب النشرلا، نفس السبب.

في اختبارنا المحلي، تم إرجاع القيمة المكتوبة بواسطة PUT /env دون تغيير بواسطة تعريف الوظيفة، لأنه لم يتم تكوين أي مفتاح.

اسأل مشغل النظام الأساسي الخاص بك قبل الاعتماد على التشفير

يعتمد تشفير الأسرار على عملية النشر، ولا يمكن تشفيرها إلا من خلال المسار PUT /env. يقوم مسار CLI بتخزينها كما هو محدد. حتى تستخدم واجهة سطر الأوامر PUT /env، استخدم استدعاء HTTP أعلاه للحصول على أسرار الإنتاج.

قراءة الأسرار مرة أخرى مقيدة أيضًا. يقوم GET /v1/functions/{name}/env بإرجاع القيم التي تم فك تشفيرها، ويتطلب، مثل GET /v1/functions/{name}، مفتاح service_role. يستقبل المفتاح العام 403.

#
القواعد

5. القواعد الواجب اتباعها

  • لا تقم مطلقًا بتشفير سر في index.ts. يتم تخزين الكود المصدري للوظيفة في مشروعك وإعادته إلى أي متصل service_role.
  • لا تسجل سرًا أبدًا. ينتهي الأمر بإخراج console.log في سجلات وقت التشغيل.
  • استخدم متغيرًا واحدًا لكل وظيفة، مع أضيق مفتاح يعمل (مفتاح مقيد من مزود الخدمة الخاص بك، وليس المفتاح الرئيسي).
  • قم بتدوير المفتاح عن طريق تعيين القيمة الجديدة وإعادة نشر أي شيء: تستخدمه المكالمة التالية.