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

من الشائع نشر بيئات متعددة من قاعدة الرموز البرمجية نفسها، مع اختلاف طفيف في الإعدادات بين كل بيئة. على سبيل المثال، قد تريد تخصيص وحدة معالجة مركزية وذاكرة وصول عشوائي أقل لبيئة التنظيم، أو قد تريد التأكّد من أنّ بيئة الإعداد تحتفظ بنسخة واحدة على الأقل نشطة وجاهزة لتلقّي الطلبات. قد تريد أيضًا تحديد متغيّرات بيئة وأسرار مختلفة استنادًا إلى البيئة والموارد التي تريد استخدامها.

يوضّح هذا الدليل كيفية نشر بيئة إنتاج وبيئة تنظيم، كلّ منهما في مشروع منفصل على Firebase. باتّباع المبادئ نفسها، يمكنك النشر في أنواع مختلفة أخرى من البيئات. لمزيد من المعلومات عن البيئات، يُرجى الاطّلاع على نظرة عامة على البيئات وأفضل الممارسات العامة لإعداد مشاريع Firebase.

المتطلبات الأساسية

الخطوة 0: إنشاء إعدادات تلقائية في apphosting.yaml

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

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