من الشائع أن يتم نشر بيئات متعددة من نفس قاعدة الرموز، حيث يتم نشر كل منها بإعدادات مختلفة قليلاً. على سبيل المثال، قد ترغب في تعيين وحدة معالجة مركزية (CPU) وذاكرة وصول عشوائي (RAM) أقل إلى بيئة الاختبار، أو قد ترغب في التأكد تحافظ بيئة الإنتاج على إبقاء مثيل واحد على الأقل نشطًا وجاهزًا للعرض الطلبات. قد ترغب أيضًا في تحديد متغيرات بيئة مختلفة يعتمد على البيئة والموارد التي تريد استخدامها.
يصف هذا الدليل طريقة نشر بيئة إنتاج وتقسيم مرحلي، بحيث مشروع منفصل في 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
لإدارته.
إعدادات وقت التشغيل (وحدة المعالجة المركزية (CPU) والتزامن وحدود الذاكرة وما إلى ذلك) والبيئة
والمتغيرات الخاصة بتطبيقك. كما تدعم أيضًا مراجع الأسرار التي تتم إدارتها باستخدام
Cloud Secret Manager، ما يجعله آمنًا للتحقّق من عنصر التحكّم في المصدر. لمزيد من المعلومات،
معلومات، راجع تهيئة
الخلفية.
للبدء، أنشئ ملف apphosting.yaml
في الدليل الجذري لتطبيقك.
هذا هو ملف الإعداد الاحتياطي الذي يتم استخدامه عند
لم يتم العثور على ملف إعداد خاص بالبيئة. القيم المخزنة في
يجب أن يكون apphosting.yaml
هو الإعدادات التلقائية الآمنة للاستخدام في جميع البيئات.
توضّح الأقسام التالية كيفية إلغاء القيم التلقائية في apphosting.yaml
.
لبيئات محددة. ينشئ نموذج التدفق هذا بيئة مرحلية.
الخطوة 1: ضبط اسم البيئة
تحتوي كل خلفية App Hosting على إعداد اسم البيئة. هذا الحقل هو يُستخدم لربط الخلفية بملف تهيئة خاص بالبيئة، ويمكن تغييرها في أي وقت. يمكنك فقط ضبط اسم بيئة واحد لكل واجهة خلفية.
لضبط اسم بيئة الخلفية،
- في وحدة تحكُّم Firebase، اختَر مشروعك المرحلي (في هذا المثال، my-staging-firebase-project).
- اختَر "App Hosting" من شريط التنقّل الأيمن.
- انقر على عرض لوحة البيانات في الواجهة الخلفية التي اخترتها.
- في علامة التبويب الإعدادات، اختَر النشر.
- ضمن اسم البيئة، أدخِل اسم بيئتك. يمكنك تسمية البيئة كما تريد. في هذا المثال، هناك عملية تقسيم مرحلي.
- انقر على حفظ.
عند بدء طرح App Hosting للخلفية (إما على git)
الدفع أو يدويًا من خلال وحدة التحكّم)، سيبحث 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
، مثل وحدة المعالجة المركزية (CPU).
مثل أي متغيرات بيئة متداخلة.
الخطوة 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 | زاوية
- ربط نطاق خاص
- اضبط الخلفية.
- مراقبة عمليات الطرح واستخدام الموقع الإلكتروني والسجلات