التعرّف على خدمة استضافة التطبيقات وطريقة عملها

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

دعم إطار العمل

توفّر خدمة "استضافة التطبيقات" دعمًا للإصدارات ونشرها بدون الحاجة إلى إنشاء تطبيقات الويب تم تطويرها في أطر العمل التالية:

  • الإصدار 13 من Next.js والإصدارات الأحدث
  • Angular 17.2 أو إصدار أحدث

تحدد استضافة التطبيقات إطار العمل الذي تستخدمه من خلال فحص ملف package-lock.json أو ملف قفل آخر في المستودع. إذا حاولت نشر تطبيق Node.js يفتقد إلى ملف قفل، فستفشل استضافة التطبيقات في وإنشاء تطبيقك وتشغيله يمكنك إنشاء package-lock.json من خلال تشغيل npm install في الدليل الجذر.

هناك محوّلان لإطار عمل "استضافة التطبيقات" دورَين رئيسيَين:

  1. تحلل رمز المصدر وأي ملفات تهيئة خاصة بإطار العمل (مثل next.config.js) لفهم سلوك تطبيقك الذي تم ضبطه.
  2. يشغّل أمر إنشاء تطبيقك لإنشاء أصول ثابتة وإنشاء إصدار محسّن من تطبيقك للإنتاج.

تعمل محوّلات إطار العمل على إنشاء تطبيق Node.js باستخدام npm run build، وهي تعمل بشكل أفضل. مع النصوص البرمجية الافتراضية لكل إطار عمل: next build لـ Next.js ng build لـ Angular. ستحاول "استضافة التطبيق" إجراء إصدارات ذات إصدار مخصّص ولكن لا يمكن أن يضمن النجاح بشكل يمكن الاعتماد عليه.

آلية عمل تكامل مستودع استضافة التطبيقات

الاتصال المهم بين مستودع جيت هب واستضافة التطبيق تتم معالجة الواجهة الخلفية من خلال Developer Connect، منصة الاتصال في Google Cloud لأدوات DevOps الخارجية. أثناء إنشاء واجهة خلفية لاستضافة التطبيقات، يرشدك سير عمل واجهة المستخدم في Developer Connect خلال تثبيت تطبيق GitHub في Firebase الخطوات الرئيسية في هذه العملية هي:

  1. أنت تمنح Developer Connect مشرف المدير السري الدور. يتيح هذا للنظام تخزين بيانات الاعتماد بأمان على هيئة "أسرار" بوصة Cloud Secret Manager
  2. أنت تفوّض تطبيق GitHub بالوصول إلى GitHub المستودع.
  3. تخزّن أداة Developer Connect رمزًا مميّزًا مخصصًا لتفويض GitHub في ومستودع المدير السري للمشروع؛ لا تعدّل هذا الرمز المميّز أو تحذفه.

بالإضافة إلى ذلك، تتكامل استضافة التطبيقات مع واجهة برمجة التطبيقات GitHub Check API لتوفير تحقق من عمليات الطرح. تتيح لك عملية التحقّق هذه الاطّلاع على حالة الطرح في GitHub وتصحيح أخطاء عملية النشر في حالة حدوث أي أخطاء.

التكامل مع Firebase وخدمات Google الأخرى

تعمل ميزة "استضافة التطبيقات" على إعداد بيئتَي الإنشاء والتشغيل، ما يتيح لك إعداد حزمة تطوير البرامج (SDK) لمشرف Firebase بواسطة Google بيانات الاعتماد التلقائية للتطبيق. بهذه الطريقة، يمكن للخلفية التواصل مع منتجات Firebase الأخرى أثناء عملية الإنشاء والنشر

حساب خدمة الواجهة الخلفية "استضافة التطبيق"

أثناء الإصدار ووقت التشغيل، تتم مصادقة الواجهة الخلفية لاستضافة التطبيق مع خدمات Google الأخرى مع حساب خدمة. حساب خدمة تلقائي لـ يتم إنشاء هذه الأغراض في المرة الأولى التي تفعّل فيها ميزة "استضافة التطبيق" في مشروع Firebase:

firebase-app-hosting-compute@PROJECT ID.iam.gserviceaccount.com

ينطبق حساب الخدمة هذا على جميع الخلفيات تلقائيًا ويحتوي على الحد الأدنى من مجموعة للسماح لك بإنشاء تطبيقك وتشغيله ومراقبته. تحتوي أيضًا على إذن لـ مصادقة SDK للمشرف باستخدام بيانات الاعتماد التلقائية للتطبيق، وإجراء عمليات مثل تحميل البيانات من Cloud Firestore. عرض أدوار استضافة التطبيقات على Firebase:

إذا كان تطبيقك بحاجة إلى التفاعل مع الخدمات الإضافية من Google سواء في الإصدار الوقت أو من خلفية قيد التشغيل، يمكنك تخصيص حساب الخدمة التلقائي عن طريق وإضافة الأدوار. على سبيل المثال، إذا كان تطبيقك يتطلب أذونات للوصول إلى Vertex AI، عليك قد تحتاج إلى إضافة roles/aiplatform.user أو بعض الأدوار ذات الصلة.

المصطلحات والتعريفات الرئيسية

  • الخلفية: مجموعة الموارد المُدارة التي تستضيفها منصة "استضافة التطبيق" تقوم بإنشائه لإنشاء تطبيق الويب الخاص بك وتشغيله.
  • الطرح: هو إصدار محدّد من تطبيقك المباشر مرتبط بخطة git Commit.
  • الفرع المباشر: هو فرع مستودع GitHub الذي يتم نشره في عنوان URL المنشور. غالبًا ما يكون الفرع الذي يميز الفروع أو دمج فروع التطوير.

القيود والمشاكل المعروفة

هناك بعض القيود المعروفة لمعاينة "استضافة التطبيق":

  • لا تتوفّر ميزة تحسين الصور حتى الآن.
  • في بعض الحالات، قد تعرض واجهة خلفية "استضافة التطبيق" Intermittent connection error رسالة على عنوان URL لتطبيقك. سيساعدك الإصلاح متاحة في إصدار لاحق.
  • يتم تعديل عناوين التحكم في ذاكرة التخزين المؤقت لتقييد ذاكرات التخزين المؤقت لشبكة توصيل المحتوى (CDN) إلى 60 ثانية؛ في لاحقًا، عندما يكون لدى خدمة استضافة التطبيقات القدرة على الإزالة النهائية لذاكرة التخزين المؤقت على لنشرها، سيتم إلغاء هذا الحد.
  • تتم إزالة عناوين ملف تعريف الارتباط Set-Cookie من الاستجابات التي يتم عرضها من خلال مستوى بيانات استضافة التطبيق سيتوفّر حل في إصدار لاحق.
  • يتم عرض الملفات الثابتة غير المخزّنة مؤقتًا خارج Cloud Run. في في إصدار لاحق، فسيتم تخزينها وعرضها من أصل استضافة التطبيقات لتحقيق أداء أفضل.
  • قد لا يتم عرض رموز التخزين التعريفية لخدمة "استضافة التطبيق" في صفحة استخدام الخلفية في "وحدة تحكُّم Firebase". وستكون متوفرة في إصدار لاحق.
  • قد تعرض "وحدة تحكُّم Firebase" بشكل متقطع رسالة "لم يتم العثور على الإصدار غير صالح" عند إنشاء الواجهة الخلفية.
  • في الوقت الحالي، تشترك جميع الخلفيات في المشروع نفسه في مؤسسة/حساب GitHub. ويمكن ربطها بمستودعات مختلفة ضمن تلك المؤسسة أو الحساب. لإنشاء خلفيات مرتبطة بحسابات GitHub مختلفة، ووضعها في مشروعات منفصلة.
  • في الوقت الحالي، يُسمح فقط بمنطقة us-central1.