من الشائع أن يتم نشر بيئات متعددة من قاعدة الرموز البرمجية نفسها، وكل بيئة لها إعدادات مختلفة قليلاً. على سبيل المثال، قد تحتاج إلى منح موارد أقل من وحدة المعالجة المركزية وذاكرة الوصول العشوائي لبيئات الاختبار، أو قد تحتاج إلى التأكّد من أنّ بيئة الإنتاج تحتفظ بمثيل واحد على الأقل نشط وجاهز لمعالجة الطلبات. قد تحتاج أيضًا إلى تحديد متغيّرات بيئة و أسرار مختلفة حسب البيئة والموارد التي تريد استخدامها.
يوضّح هذا الدليل طريقة نشر بيئة إنتاج ومراحل مرحلية، إلى مشروع منفصل في Firebase. باتباع نفس المبادئ، يمكنك النشر في أنواع أخرى مختلفة من البيئات. لمزيد من المعلومات عن البيئات، اطّلِع على نظرة عامة على البيئات وأفضل الممارسات العامة لإعداد مشاريع Firebase.
المتطلبات الأساسية
- تم تخزين رمز تطبيقك في GitHub.
- لقد سبق لك إنشاء مشروع مميز لكل بيئة من بيئتك، مثل
my-production-firebase-project
وmy-staging-firebase-project
. احرص على وضع علامة على مشروع Firebase للإنتاج باستخدام نوع البيئة "production". - في كل مشروع، أنشأت خلفية 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 أو يدويًا من خلال وحدة التحكّم)، سيبحث 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.appspot.com
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.appspot.com
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
- ربط نطاق خاص
- اضبط الخلفية.
- مراقبة عمليات الطرح واستخدام الموقع الإلكتروني والسجلّات