نشر بيئات متعددة من قاعدة رموز

من الشائع أن يتم نشر بيئات متعددة من نفس قاعدة الرموز، حيث يتم نشر كل منها بإعدادات مختلفة قليلاً. على سبيل المثال، قد ترغب في تعيين وحدة معالجة مركزية (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 على إعداد اسم البيئة. هذا الحقل هو يُستخدم لربط الخلفية بملف تهيئة خاص بالبيئة، ويمكن تغييرها في أي وقت. يمكنك فقط ضبط اسم بيئة واحد لكل واجهة خلفية.

لضبط اسم بيئة الخلفية،

  1. في وحدة تحكُّم Firebase، اختَر مشروعك المرحلي (في هذا المثال، my-staging-firebase-project).
  2. اختَر "App Hosting" من شريط التنقّل الأيمن.
  3. انقر على عرض لوحة البيانات في الواجهة الخلفية التي اخترتها.
  4. في علامة التبويب الإعدادات، اختَر النشر.
  5. ضمن اسم البيئة، أدخِل اسم بيئتك. يمكنك تسمية البيئة كما تريد. في هذا المثال، هناك عملية تقسيم مرحلي.
  6. انقر على حفظ.

عند بدء طرح 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.

الخطوات التالية