من الشائع نشر بيئات متعددة من قاعدة الرموز البرمجية نفسها، مع اختلاف طفيف في الإعدادات بين كل بيئة. على سبيل المثال، قد تريد تخصيص وحدة معالجة مركزية وذاكرة وصول عشوائي أقل لبيئة التنظيم، أو قد تريد التأكّد من أنّ بيئة التشغيل الفعلي تحتفظ بآلة افتراضية واحدة على الأقل نشطة وجاهزة لتلقّي الطلبات. قد تريد أيضًا تحديد متغيّرات بيئة وأسرار مختلفة استنادًا إلى البيئة والموارد التي تريد استخدامها.
يصف هذا الدليل كيفية نشر بيئة إعداد وبيئة تنظيم، كلّ منهما في مشروع منفصل على Firebase. باتّباع المبادئ نفسها، يمكنك النشر في أنواع مختلفة أخرى من البيئات. لمزيد من المعلومات عن البيئات، يُرجى الاطّلاع على نظرة عامة على البيئات وأفضل الممارسات العامة لإعداد مشاريع Firebase.
المتطلبات الأساسية
- تم تخزين الرمز البرمجي لتطبيقك في GitHub.
- سبق أن أنشأت مشروعًا مميزًا لكل بيئة من بيئاتك، على سبيل المثال
my-production-firebase-projectوmy-staging-firebase-project. احرص على وضع علامة "الإعداد" على نوع بيئة مشروعك على Firebase باستخدام "الإعداد" . - في كل مشروع، أنشأت برنامجًا في جهة العرض الخلفية على App Hosting، مع ضبط الفرع المباشر
على فرع GitHub الذي تريد نشره (مثل
main). لمزيد من المعلومات، يُرجى الاطّلاع على مقالةبدء استخدام App Hosting.
الخطوة 0: إنشاء إعدادات تلقائية في apphosting.yaml
App Hosting تتيح استخدام ملف إعداد يُسمّى apphosting.yaml لإدارة
إعدادات وقت التشغيل (وحدة المعالجة المركزية والتزامن وحدود الذاكرة وما إلى ذلك) ومتغيّرات البيئة لتطبيقك. وتتيح أيضًا الإشارات إلى الأسرار المُدارة باستخدام
Cloud Secret Manager، ما يجعل من الآمن تسجيلها في نظام التحكّم بالمصادر. لمزيد من
المعلومات، يُرجى الاطّلاع على مقالة ضبط برنامج في جهة العرض الخلفية.
للبدء، أنشِئ ملفًا باسم apphosting.yaml في الدليل الجذري لتطبيقك.
هذا هو ملف الإعداد الاحتياطي الذي يتم استخدامه عندما لا يتم العثور على ملف إعداد خاص بالبيئة. يجب أن تكون القيم المخزّنة في apphosting.yaml قيمًا تلقائية آمنة للاستخدام في جميع البيئات.
توضّح الأقسام التالية كيفية إلغاء القيم التلقائية في apphosting.yaml لبيئات معيّنة. ينشئ مسار المثال هذا بيئة تنظيم.
الخطوة 1: ضبط اسم البيئة
يحتوي كل برنامج في جهة العرض الخلفية على App Hosting على إعداد اسم البيئة. يُستخدم هذا الحقل لربط برنامجك في جهة العرض الخلفية بملف إعداد خاص بالبيئة، ويمكن تغييره في أي وقت. يمكنك ضبط اسم بيئة واحد فقط لكل برنامج في جهة العرض الخلفية.
لضبط اسم بيئة برنامجك في جهة العرض الخلفية، اتّبِع الخطوات التالية:
- في وحدة تحكُّم Firebase، اختَر مشروع التنظيم (في هذا المثال،
my-staging-firebase-project). - انتقِل إلى الاستضافة والخدمات بلا خادم > App Hosting.
- انقر على عرض لوحة البيانات في برنامجك الذي اخترته في جهة العرض الخلفية.
- في علامة التبويب الإعدادات ، اختَر البيئة.
- ضمن اسم البيئة، أدخِل اسم بيئتك. يمكنك تسمية البيئة كما تشاء. في هذا المثال، هي التنظيم.
- انقر على حفظ.
عندما يتم بدء عملية نشر في App Hosting لبرنامجك في جهة العرض الخلفية (إما عند تنفيذ أمر git
push أو يدويًا من خلال Firebase console)، ستتحقّق خدمة App Hosting من وجود ملف apphosting.ENVIRONMENT_NAME.yaml قبل
الرجوع إلى apphosting.yaml.
الخطوة 2: إنشاء ملف apphosting.yaml الخاص بالبيئة
بالنسبة إلى الإعدادات الخاصة بالبيئة، أنشِئ ملفًا بالاسم
apphosting.ENVIRONMENT_NAME.yaml لتحديد عمليات الإلغاء الخاصة بالبيئة. يتّخذ هذا الملف التنسيق نفسه لـ
التلقائي apphosting.yaml ويجب أن يكون موجودًا في
الدليل الجذري لتطبيقك بجانب apphosting.yaml.
في مدّة التصميم، تدمج App Hosting هذين الملفَين، مع منح الأولوية للقيم في ملف YAML الخاص بالبيئة على ملف apphosting.yaml الأساسي.
في هذا المثال، ستنشئ ملفًا باسم apphosting.staging.yaml في الدليل الجذري للتطبيق:
runConfig:
cpu: 1
memoryMiB: 512
concurrency: 5
env:
- variable: API_URL
value: api.staging.service.com
availability:
- BUILD
- variable: DATABASE_URL
secret: secretStagingDatabaseURL
لنفترض أنّ لديك ملفًا باسم apphosting.yaml يبدو على النحو التالي:
runConfig:
cpu: 3
memoryMiB: 1024
maxInstances: 4
minInstances: 0
concurrency: 100
env:
- variable: API_URL
value: api.service.com
availability:
- BUILD
- RUNTIME
- variable: STORAGE_BUCKET
value: mybucket.firebasestorage.app
availability:
- RUNTIME
- variable: API_KEY
secret: secretIDforAPI
ستبدو النتيجة النهائية المدمجة، التي يمكنك الاطّلاع عليها في سجلّات Cloud Build، على النحو التالي:
runConfig:
cpu: 1
memoryMiB: 512
maxInstances: 4
minInstances: 0
concurrency: 5
env:
- variable: API_URL
value: api.staging.service.com
availability:
- BUILD
- variable: STORAGE_BUCKET
value: mybucket.firebasestorage.app
availability:
- RUNTIME
- variable: API_KEY
secret: secretIDforAPI
- variable: DATABASE_URL
secret: secretStagingDatabaseURL
يُرجى العِلم أنّه تم أيضًا استبدال بعض قيم runConfig، مثل وحدة المعالجة المركزية، بالإضافة إلى أي متغيّرات بيئة متداخلة.
الخطوة 3: تفعيل قاعدة الرموز البرمجية
بعد الانتهاء من تعديل ملف apphosting.ENVIRONMENT_NAME.yaml الخاص بالبيئة، عليك تحميل الملف إلى GitHub:
$ git add apphosting.<ENVIRONMENT_NAME>.yaml
$ git commit -m "Added environment specific yaml file"
$ git push
ستستخدم أي برامج في جهة العرض الخلفية تم وضع علامة اسم البيئة عليها قيم الإلغاء المحدّدة في ملف YAML المقابل، وسترجع إلى apphosting.yaml عندما لا يتم العثور على قيمة. بالنسبة إلى البرامج في جهة العرض الخلفية التي ليس لها اسم بيئة مرتبط، يمكنك مواصلة استخدام apphosting.yaml.
الخطوات التالية
- تعمّق أكثر: يمكنك الاطّلاع على درس تطبيقي حول الترميز على Firebase يدمج تطبيقًا مستضافًا مع "مصادقة Firebase" وميزات Google للذكاء الاصطناعي: Next.js | Angular
- ربط نطاق خاص.
- ضبط برنامجك في جهة العرض الخلفية.
- مراقبة عمليات النشر واستخدام الموقع الإلكتروني والسجلّات