يمكنك إقران Cloud Run مع Firebase Hosting لإنشاء المحتوى الديناميكي وعرضه أو إنشاء واجهات برمجة تطبيقات REST كخدمات صغيرة.
باستخدام Cloud Run، يمكنك نشر تطبيق مُحزم في صورة حاوية. بعد ذلك، يمكنك استخدام Firebase Hosting لتوجيه طلبات HTTPS لتشغيل تطبيقك المُنشئ باستخدام حاويات.
- يتيح Cloud Run استخدام عدة لغات (بما في ذلك Go وNode.js وPython وJava)، ما يمنحك المرونة في استخدام لغة البرمجة وإطار العمل المفضّلَين لديك.
- Cloud Run تتم زيادة حجم صورة الحاوية بشكل تلقائي وأفقي لمعالجة الطلبات الواردة، ثم يتم تقليل حجمها عندما ينخفض الطلب.
- تدفع فقط مقابل وحدة المعالجة المركزية (CPU) والذاكرة والشبكة المستخدَمة أثناء معالجة الطلبات.
للاطّلاع على أمثلة على حالات الاستخدام وعينات Cloud Run المدمجة مع Firebase Hosting، يُرجى الانتقال إلى نظرة عامة حول تكنولوجيا السحابة غير المزوّدة بخادم.
يوضّح لك هذا الدليل كيفية تنفيذ ما يلي:
- كتابة تطبيق Hello World بسيط
- تضمين تطبيق في حاوية وتحميله إلى Artifact Registry
- نشر صورة الحاوية على Cloud Run
- توجيه طلبات Hosting إلى تطبيقك المستند إلى حاويات
يُرجى العِلم أنّه لتحسين أداء عرض المحتوى الديناميكي، يمكنك تعديل إعدادات ذاكرة التخزين المؤقت اختياريًا.
قبل البدء
قبل استخدام Cloud Run، عليك إكمال بعض المهام الأولية،
بما في ذلك إعداد حساب Cloud Billing وتفعيل Cloud Run
واجهة برمجة التطبيقات وتثبيت أداة سطر الأوامر gcloud
.
إعداد الفوترة لمشروعك
يوفّر Cloud Run حصة استخدام مجانية، ولكن لا يزال عليك امتلاك حساب Cloud Billing مرتبط بمشروعك على Firebase لاستخدام Cloud Run أو تجربته.
تفعيل واجهة برمجة التطبيقات وتثبيت حزمة تطوير البرامج (SDK)
فعِّل واجهة برمجة التطبيقات Cloud Run في وحدة تحكّم Google APIs:
افتح صفحة واجهة برمجة التطبيقات Cloud Run في وحدة تحكّم Google APIs.
اختَر مشروعك على Firebase عندما يُطلب منك ذلك.
انقر على تفعيل في صفحة واجهة برمجة التطبيقات Cloud Run.
تأكَّد من ضبط أداة
gcloud
للمشروع الصحيح:gcloud config list
الخطوة 1: كتابة نموذج الطلب
يُرجى العِلم أنّ Cloud Run تتيح استخدام العديد من اللغات الأخرى بالإضافة إلى اللغات المعروضة في العيّنة التالية.
انتقال
أنشئ دليلاً جديدًا باسم
helloworld-go
، ثم غيِّر الدليل إلى:mkdir helloworld-go
cd helloworld-go
أنشئ ملفًا جديدًا باسم
helloworld.go
، ثم أضِف الرمز التالي:تنشئ هذه التعليمات البرمجية خادم ويب أساسيًا يستمع إلى المنفذ المحدَّد من خلال متغيّر البيئة
PORT
.
اكتمل تطبيقك وأصبح جاهزًا للحاويات وتحميله إلى Artifact Registry.
Node.js
أنشئ دليلاً جديدًا باسم
helloworld-nodejs
، ثم غيِّر الدليل إلى:mkdir helloworld-nodejs
cd helloworld-nodejs
أنشِئ ملف
package.json
يتضمّن المحتوى التالي:أنشئ ملفًا جديدًا باسم
index.js
، ثم أضِف الرمز التالي:تنشئ هذه التعليمات البرمجية خادم ويب أساسيًا يستمع إلى المنفذ المحدَّد من خلال متغيّر البيئة
PORT
.
اكتمل تطبيقك وأصبح جاهزًا للحاويات وتحميله إلى Artifact Registry.
Python
أنشئ دليلاً جديدًا باسم
helloworld-python
، ثم غيِّر الدليل إلى:mkdir helloworld-python
cd helloworld-python
أنشئ ملفًا جديدًا باسم
app.py
، ثم أضِف الرمز التالي:تنشئ هذه التعليمات البرمجية خادم ويب أساسيًا يستمع إلى المنفذ المحدَّد من خلال متغيّر البيئة
PORT
.
اكتمل تطبيقك وأصبح جاهزًا للحاويات وتحميله إلى Artifact Registry.
جافا
ثبِّت Java SE 8 أو إصدار أحدث من JDK وCURL.
يُرجى العلم أنّنا نحتاج فقط إلى إجراء ذلك لإنشاء مشروع الويب الجديد في الخطوة التالية. سيحمِّل ملف Dockerfile، الذي سيتم وصفه لاحقًا، جميع التبعيات في الحاوية.
من وحدة التحكّم، أنشئ مشروع ويب فارغًا جديدًا باستخدام cURL ثم تعليمات unzip:
curl https://start.spring.io/starter.zip \ -d dependencies=web \ -d name=helloworld \ -d artifactId=helloworld \ -o helloworld.zip
unzip helloworld.zip
يؤدي ذلك إلى إنشاء مشروع SpringBoot.
عدِّل فئة
SpringBootApplication
فيsrc/main/java/com/example/helloworld/HelloworldApplication.java
من خلال إضافة@RestController
لمعالجة تعيين/
، وأضِف أيضًا حقل@Value
لتقديم متغيّر البيئةTARGET
:تنشئ هذه التعليمات البرمجية خادم ويب أساسيًا يستمع إلى المنفذ المحدَّد من خلال متغيّر البيئة
PORT
.
اكتمل تطبيقك وأصبح جاهزًا للحاويات وتحميله إلى Artifact Registry.
الخطوة 2: حجز مساحة تخزين لتطبيق وتحميله إلى Artifact Registry
حاوِن تطبيق العيّنة عن طريق إنشاء ملف جديد باسم
Dockerfile
في الدليل نفسه الذي تتوفّر فيه الملفات المصدر. انسخ المحتوى التالي في ملفك.انتقال
Node.js
Python
جافا
أنشئ صورة الحاوية باستخدام Cloud Build من خلال تنفيذ العبارة التالية من الدليل الذي يحتوي على Dockerfile:
gcloud builds submit --tag gcr.io/PROJECT_ID/helloworld
بعد نجاح العملية، ستظهر لك رسالة SUCCESS (تم بنجاح) تحتوي على اسم الصورة
(gcr.io/PROJECT_ID/helloworld
).
يتم الآن تخزين صورة الحاوية في Artifact Registry ويمكن إعادة استخدامها إذا أردت.
ملاحظة: بدلاً من Cloud Build، يمكنك استخدام إصدار مثبَّت محليًا من Docker للقيام بإنشاء الحاوية محليًا.
الخطوة 3: نشر صورة الحاوية على Cloud Run
يمكنك نشر التطبيق باستخدام الأمر التالي:
gcloud run deploy --image gcr.io/PROJECT_ID/helloworld
عندما يُطلب منك ذلك:
- اختَر منطقة (مثل
us-central1
). - أكِّد اسم الخدمة (على سبيل المثال،
helloworld
). - الردّ
Y
على السماح بطلبات الاستدعاء غير المعتمَدة
- اختَر منطقة (مثل
يُرجى الانتظار بضع لحظات إلى أن تكتمل عملية النشر. عند نجاح العملية، يعرض سطر الأوامر عنوان URL للخدمة. على سبيل المثال:
https://helloworld-RANDOM_HASH-us-central1.a.run.app انتقِل إلى الحاوية المنشورة من خلال فتح عنوان URL للخدمة في متصفّح ويب.
سترشدك الخطوة التالية إلى كيفية الوصول إلى هذا التطبيق المُنشئ في حاوية من عنوان URL على Firebase Hosting حتى يتمكّن من إنشاء محتوى ديناميكي ل موقعك الإلكتروني المستضاف على Firebase.
الخطوة 4: توجيه طلبات الاستضافة إلى تطبيقك المُنشئ في حاوية
باستخدام قواعد إعادة الكتابة، يمكنك توجيه الطلبات التي تتطابق مع أنماط معيّنة إلى وجهة واحدة.
يوضّح المثال التالي كيفية توجيه جميع الطلبات من الصفحة
/helloworld
على موقعك الإلكتروني Hosting لبدء تشغيل
مثيل حاوية helloworld
وتشغيله.
تأكَّد مما يلي:
أن يكون لديك أحدث إصدار من Firebase CLI
لقد تم إعداد Firebase Hosting.
للحصول على تعليمات مفصّلة حول تثبيت واجهة برمجة التطبيقات وبدء استخدام Hosting، يُرجى الاطّلاع على دليل بدء استخدام Hosting.
افتح ملف
firebase.json
.أضِف إعدادات
rewrite
التالية ضمن قسمhosting
:"hosting": { // ... // Add the "rewrites" attribute within "hosting" "rewrites": [ { "source": "/helloworld", "run": { "serviceId": "helloworld", // "service name" (from when you deployed the container image) "region": "us-central1", // optional (if omitted, default is us-central1) "pinTag": true // optional (see note below) } } ] }
يمكنك نشر إعدادات الاستضافة على موقعك الإلكتروني من خلال تنفيذ العبارة التالية من جذر دليل المشروع:
firebase deploy --only hosting
يمكن الوصول إلى حاويتك الآن من خلال عناوين URL التالية:
النطاقات الفرعية في Firebase:
PROJECT_ID.web.app/
وPROJECT_ID.firebaseapp.com/
أي نطاقات مخصّصة مرتبطة:
CUSTOM_DOMAIN/
يُرجى الانتقال إلى صفحة إعدادات Hosting للحصول على مزيد من التفاصيل حول قواعد إعادة الكتابة. يمكنك معرفة أيضًا عن ترتيب أولوية الردود لإعدادات Hosting المختلفة.
الاختبار على الجهاز
أثناء التطوير، يمكنك تشغيل صورة الحاوية واختبارها محليًا. للحصول على تعليمات تفصيلية، يُرجى الانتقال إلى مستندات Cloud Run.
الخطوات التالية
إعداد ميزة التخزين المؤقّت لمحتوى موقعك الإلكتروني الديناميكي على شبكة توصيل محتوى عالمية
التفاعل مع خدمات Firebase الأخرى باستخدام حزمة تطوير البرامج (SDK) لإدارة Firebase
اطّلِع على مزيد من المعلومات عن Cloud Run، بما في ذلك الأدلة التفصيلية حول كيفية إعداد الحاويات وإدارتها وضبطها.
راجِع الأسعار والحصص والحدود للخدمة Cloud Run.