إقران "تشغيل السحابة الإلكترونية" مع "استضافة Firebase" لإنشاء وعرض للمحتوى الديناميكي أو إنشاء واجهات برمجة تطبيقات REST كخدمات مصغّرة.
باستخدام التشغيل في السحابة الإلكترونية، يمكنك نشر تطبيق حزمة في صورة حاوية. بعد ذلك، باستخدام باستضافة Firebase، يمكنك توجيه طلبات HTTPS لتشغيل الحاوية.
- يتوافق مع Cloud Run عدة لغات (بما في ذلك Go وNode.js وPython وJava)، ما يمنحك المرونة لاستخدام لغة البرمجة وإطار العمل الذي تختاره.
- تشغيل السحابة الإلكترونية تلقائيًا وأفقيًا صورة الحاوية لمعالجة الطلبات التي تم استلامها، ثم يتم تقليل حجمها عندما انخفاض الطلب.
- لن تدفع إلا مقابل استخدام وحدة المعالجة المركزية (CPU)، والذاكرة والشبكات أثناء معالجة الطلب.
على سبيل المثال، حالات الاستخدام والعينات الخاصة بميزة Cloud Run المتكاملة مع في ما يخص استضافة Firebase، تفضل بزيارة نظرة عامة بدون خادم:
يوضّح لك هذا الدليل كيفية تنفيذ ما يلي:
- كتابة تطبيق Hello World بسيط
- وضع تطبيق في حاويات وتحميله إلى Container Registry
- نشر صورة الحاوية في تشغيل السحابة الإلكترونية
- طلبات الاستضافة المباشرة إلى تطبيقك المحوَّل
تجدر الإشارة إلى أنّه لتحسين أداء عرض المحتوى الديناميكي، يمكنك اتّباع الخطوات التالية: ضبط إعدادات ذاكرة التخزين المؤقت اختياريًا.
قبل البدء
قبل استخدام Cloud Run، أنت بحاجة إلى إكمال بعض المهام الأولية،
بما في ذلك إعداد حساب فوترة في السحابة الإلكترونية، وتفعيل Cloud Run
وتثبيت أداة سطر الأوامر gcloud
.
إعداد الفوترة لمشروعك
يقدم Cloud Run حصة استخدام مجانية، ولكن لا يزال يتعين عليك حساب فوترة Cloud المرتبطة بمشروع Firebase لاستخدام Cloud Run أو تجربتها.
تفعيل واجهة برمجة التطبيقات وتثبيت حزمة تطوير البرامج (SDK)
تمكين واجهة برمجة التطبيقات Cloud Run API في وحدة تحكم Google APIs:
افتح صفحة Cloud Run API في وحدة تحكم Google APIs.
اختَر مشروعك في Firebase عندما يُطلب منك ذلك.
انقر على تفعيل في صفحة Cloud Run API.
تثبيت وإعداد SDK للسحابة الإلكترونية.
تحقَّق من ضبط أداة
gcloud
للمشروع الصحيح:gcloud config list
الخطوة 1: كتابة نموذج تطبيق
ملاحظة: يتيح Cloud Run عدّة لغات أخرى بالإضافة إلى اللغات الموضحة في النموذج التالي.
انتقال
أنشِئ دليلاً جديدًا باسم
helloworld-go
، ثم غيِّر الدليل إلى فهو:mkdir helloworld-go
cd helloworld-go
أنشئ ملفًا جديدًا باسم
helloworld.go
، ثم أضِف الرمز التالي:ينشئ هذا الرمز خادم ويب أساسيًا ينتظر استقبال البيانات على المنفذ المحدد من قِبل متغير بيئة
PORT
.
اكتمل تطبيقك وأصبح جاهزًا لنقله إلى حاويات وتحميله إليه. Container Registry.
Node.js
أنشئ دليلاً جديدًا باسم
helloworld-nodejs
، ثم غيِّر الدليل. فيها:mkdir helloworld-nodejs
cd helloworld-nodejs
أنشئ ملف
package.json
يتضمّن المحتوى التالي:أنشئ ملفًا جديدًا باسم
index.js
، ثم أضِف الرمز التالي:ينشئ هذا الرمز خادم ويب أساسيًا ينتظر استقبال البيانات على المنفذ المحدد من قِبل متغير بيئة
PORT
.
اكتمل تطبيقك وأصبح جاهزًا لنقله إلى حاويات وتحميله إليه. Container Registry.
Python
أنشئ دليلاً جديدًا باسم
helloworld-python
، ثم غيِّر الدليل. فيها:mkdir helloworld-python
cd helloworld-python
أنشئ ملفًا جديدًا باسم
app.py
، ثم أضِف الرمز التالي:ينشئ هذا الرمز خادم ويب أساسيًا ينتظر استقبال البيانات على المنفذ المحدد من قِبل متغير بيئة
PORT
.
اكتمل تطبيقك وأصبح جاهزًا لنقله إلى حاويات وتحميله إليه. Container Registry.
جافا
تثبيت Java SE 8 أو إصدار JDK الأحدث وCURL.
لاحظ أننا نحتاج فقط إلى القيام بذلك لإنشاء مشروع الويب الجديد في الخطوة التالية. ويحمّل الملف الشامل، الذي يرد وصفه لاحقًا، جميع والتبعيات في الحاوية.
من وحدة التحكّم، أنشِئ مشروع ويب جديدًا فارغًا باستخدام مفتاح cURL ثم أوامر فك الضغط:
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
.
اكتمل تطبيقك وأصبح جاهزًا لنقله إلى حاويات وتحميله إليه. Container Registry.
الخطوة 2: وضع تطبيق في حاويات وتحميله إلى Container Registry
يمكنك احتواء نموذج التطبيق من خلال إنشاء ملف جديد باسم "
Dockerfile
" في الدليل نفسه كملفات المصدر. انسخ المحتوى التالي إلى الملف.انتقال
Node.js
Python
جافا
يمكنك إنشاء صورة الحاوية باستخدام Cloud Build من خلال تنفيذ ما يلي: من الدليل الذي يحتوي على ملف Dockerfile:
gcloud builds submit --tag gcr.io/PROJECT_ID/helloworld
عند نجاح العملية، ستظهر لك رسالة Success التي تتضمّن اسم الصورة
. (gcr.io/PROJECT_ID/helloworld
).
تم تخزين صورة الحاوية الآن في Container Registry ويمكن إعادة استخدامها إذا ما يريده.
يُرجى ملاحظة أنّه بدلاً من Cloud Build، يمكنك استخدام إصدار مُثبَّت على الجهاز. من Docker إلى أنشِئ حاويتك محليًا.
الخطوة 3: نشر صورة الحاوية على التشغيل في السحابة الإلكترونية
يمكنك النشر باستخدام الأمر التالي:
gcloud run deploy --image gcr.io/PROJECT_ID/helloworld
عندما يُطلب منك ذلك:
- اختيار منطقة (على سبيل المثال،
us-central1
) - تأكيد اسم الخدمة (على سبيل المثال،
helloworld
) - الرد على
Y
للسماح بالاستدعاءات غير المُصدَّق عليها
- اختيار منطقة (على سبيل المثال،
لتحقيق أفضل أداء، يمكنك تجميع خدمة تشغيل السحابة الإلكترونية مع خدمة "الاستضافة" باستخدام المناطق التالية:
us-west1
us-central1
us-east1
europe-west1
asia-east1
تُتاح إعادة الكتابة إلى Cloud Run من الاستضافة في المناطق التالية:
asia-east1
asia-east2
asia-northeast1
asia-northeast2
asia-northeast3
asia-south1
asia-south2
asia-southeast1
asia-southeast2
australia-southeast1
australia-southeast2
europe-central2
europe-north1
europe-southwest1
europe-west1
europe-west12
europe-west2
europe-west3
europe-west4
europe-west6
europe-west8
europe-west9
me-central1
me-west1
northamerica-northeast1
northamerica-northeast2
southamerica-east1
southamerica-west1
us-central1
us-east1
us-east4
us-east5
us-south1
us-west1
us-west2
us-west3
us-west4
us-west1
us-central1
us-east1
europe-west1
asia-east1
يُرجى الانتظار بضع لحظات حتى تكتمل عملية النشر. عند النجاح، يستخدم سطر الأوامر يعرض عنوان URL للخدمة. مثل:
https://helloworld-RANDOM_HASH-us-central1.a.run.app انتقِل إلى الحاوية المنشورة من خلال فتح عنوان URL للخدمة في متصفّح ويب.
ترشدك الخطوة التالية إلى كيفية الوصول إلى هذا التطبيق المحوَّل من عنوان URL لاستضافة Firebase حتى تتمكّن من إنشاء محتوى ديناميكي موقعًا إلكترونيًا مستضافًا على Firebase.
الخطوة 4: إرسال طلبات الاستضافة المباشرة إلى تطبيقك المحوَّل
مع قواعد إعادة كتابة، يمكنك توجيه الطلبات التي تتطابق مع أنماط معينة مع وجهة واحدة.
يوضّح المثال التالي كيفية توجيه جميع الطلبات من الصفحة.
/helloworld
على موقع الاستضافة الإلكتروني لبدء تشغيل
مثيل الحاوية helloworld
.
تأكَّد مما يلي:
لقد أعددتَ ميزة "استضافة Firebase".
للحصول على تعليمات تفصيلية حول تثبيت واجهة سطر الأوامر وتهيئتها الاستضافة، يمكنك الاطّلاع على دليل بدء الاستضافة.
افتح ملف
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/
انتقِل إلى صفحة إعدادات الاستضافة الخاصة مزيد من التفاصيل حول قواعد إعادة الكتابة. يمكنك تعرف أيضًا على ترتيب أولوية الردود من أجل تهيئات الاستضافة المختلفة.
الاختبار محليًا
أثناء التطوير، يمكنك تشغيل صورة الحاوية واختبارها محليًا. بالنسبة التعليمات التفصيلية، يُرجى زيارة مستندات تشغيل Cloud
الخطوات التالية
إعداد التخزين المؤقت للمحتوى الديناميكي على شبكة توصيل محتوى (CDN) عالمية.
التفاعل مع خدمات Firebase الأخرى باستخدام حزمة SDK للمشرف في Firebase
التعرف على المزيد من المعلومات عن Cloud Run، بما في ذلك أدلة إرشادية تفصيلية وإعداد الحاويات وإدارتها وتهيئتها.
راجِع الأسعار و الحصص والحدود لـ تشغيل السحابة الإلكترونية.