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

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

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

يوفّر App Hosting دعمًا للإصدارات ونشرها بدون الحاجة إلى إعداد تطبيقات الويب. تم تطويرها في أطر العمل التالية:

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

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

هناك دوران رئيسيان في محوّلات إطار العمل App Hosting:

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

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

آلية عمل دمج مستودع App Hosting

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

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

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

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

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

حساب خدمة الواجهة الخلفية "App Hosting"

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

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

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

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

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

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

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

هناك بعض القيود المعروفة على معاينة App Hosting:

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