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