لمحة عن هذا الدرس التطبيقي حول الترميز
1. مقدمة
تاريخ آخر تعديل: 21 حزيران (يونيو) 2023
التنبيه عند إجراء عمليات الفحص في وقت التشغيل للتأكّد من مدى التوفّر
يسمح لك التنبيه بشأن عمليات الفحص في وقت التشغيل بتحديد المشاكل التي قد تؤثر في خدماتك وحلّها بسرعة. من خلال تنبيهك بشأن حالات انقطاع الخدمة، يمكنك اتّخاذ الخطوات اللازمة للحدّ من تأثير ذلك في المستخدمين والعملاء.
يتم إجراء عمليات الفحص في وقت التشغيل على فترات زمنية، أقصر منها 60 ثانية. قد يكون من المفيد أيضًا مراقبة رموز الخطأ كأحداث ديناميكية من خلال التنبيهات المستندة إلى السجلّ كمؤشّر إضافي لعدم التوفّر إذا كنت بحاجة إلى دقة تتجاوز 60 ثانية. إذا كانت هناك فاصل زمني مدته 60 ثانية أو أكثر مقبولاً، تُعدّ عمليات الفحص في وقت التشغيل طريقة سهلة لقياس خدمتك باستخدام القليل من الإعدادات الإضافية.
إذا لم تتوفر إحدى الخدمات، سيرصد فحص وقت التشغيل المشكلة حتى في حال عدم وجود حركة مرور. ومن ناحية أخرى، يمكن أن تتأثر حركة المرور بعوامل مثل الصيانة، والترقيات، وحتى عوامل خارجية عن النظام، مثل سوء الأحوال الجوية أو الأحداث الرياضية التي تؤدي إلى تشتيت انتباه الاستخدام.
لمزيد من المعلومات عن حالات استخدام عمليات الفحص في وقت التشغيل، يُرجى الرجوع إلى المقالة ضمان مدة تشغيل موارد Google Cloud.
نشر المواضيع/الاشتراكات كقناة إشعارات تنبيه
يمكن استخدام موضوع النشر/الاشتراك كقناة إشعارات Google Cloud Monitoring لإرسال تنبيهات إلى اشتراك في خدمة Pub/Sub. يتيح لك ذلك دمج تنبيهات "مراقبة السحابة الإلكترونية" مع الأنظمة الأخرى، بما في ذلك خدمات الإشعارات التابعة لجهات خارجية.
لاستخدام موضوع Pub/Sub كقناة إشعارات، عليك أولاً إنشاء موضوع Pub/Sub واشتراك في Pub/Sub. بعد ذلك، عليك إنشاء قناة إشعارات Cloud Monitoring تستخدم موضوع Pub/Sub كوجهة.
عندما يظهر تنبيه، سترسل خدمة Cloud Monitoring رسالة إلى موضوع النشر/الاشتراك. ويمكن بعد ذلك للمشترك في اشتراك النشر/الاشتراك معالجة الرسالة واتخاذ الإجراء المناسب.
ما الذي ستنشئه
في هذا الدرس التطبيقي حول الترميز، سيتم نشر تطبيق وإنشاء موضوع نشر/اشتراك وإنشاء تنبيه بشأن عمليات الفحص في وقت التشغيل للتطبيق الذي يستخدم موضوع النشر/الاشتراك كقناة إشعارات.
المعلومات التي ستطّلع عليها
- كيفية إنشاء موضوع على خدمة Pub/Sub
- كيفية إنشاء عمليات فحص وتنبيه أثناء وقت التشغيل
يركّز هذا الدرس التطبيقي حول الترميز على إنشاء تنبيه لإجراء عمليات الفحص في وقت التشغيل. يتم تنقيح المفاهيم غير ذات الصلة ورمز التطبيق ويتم توفيرها لك لنسخها ولصقها ببساطة.
المتطلبات
- حساب على Google Cloud لديه أذونات لتنفيذ ما يلي:
- نشر تطبيقات Cloud Run
- إنشاء مواضيع النشر/الاشتراك
- إنشاء عمليات فحص في وقت التشغيل
- إنشاء تنبيهات
2. بدء الإعداد
اختيار مشروع على Google Cloud أو إنشاؤه
لاختيار مشروع حالي، استخدِم القائمة المنسدلة:
لإنشاء مشروع جديد على Google Cloud، يمكنك اتّباع الخطوات التالية:
- انتقِل إلى وحدة تحكُّم Google Cloud Platform.
- انقر على الزر إنشاء مشروع.
- أدخِل اسمًا لمشروعك.
- اختَر حساب فوترة لمشروعك.
- انقر على الزر إنشاء.
سيتم إنشاء مشروعك وسيتم نقلك إلى لوحة معلومات المشروع. ومن هناك، يمكنك البدء في استخدام خدمات Google Cloud.
إليك بعض التفاصيل الإضافية حول كل خطوة:
- الاسم: يجب أن يكون اسم مشروعك فريدًا داخل مؤسستك.
- حساب الفوترة: يمكنك استخدام حساب فوترة حالي أو إنشاء حساب جديد.
- الإنشاء: بعد إدخال جميع المعلومات المطلوبة، انقر على الزر إنشاء لإنشاء مشروعك.
لمزيد من المعلومات، يُرجى الاطّلاع على مستندات Google Cloud حول إنشاء المشاريع.
3. نشر تطبيق واجهة برمجة التطبيقات
ما هو موضوع نموذج التطبيق أو واجهة برمجة التطبيقات؟
تطبيقنا عبارة عن تطبيق بسيط لواجهة برمجة تطبيقات Inventory يعرض نقطة نهاية واجهة برمجة تطبيقات REST مع عمليتين لسرد عناصر المخزون والحصول على عدد معين لمخزون العناصر.
بعد نشر واجهة برمجة التطبيقات وفرض استضافتها على https://<somehost>، يمكننا الوصول إلى نقاط نهاية واجهة برمجة التطبيقات على النحو التالي:
https://<somehost>/inventory
سيؤدّي ذلك إلى سرد كل سلع المنتجات التي تتضمّن مستويات المستودع المتوفّرة.
https://<somehost>/inventory/{productid}
سيؤدي ذلك إلى توفير سجلّ واحد مع معرّف المنتج ومستوى المستودع الفعلي لهذا المنتج.
بيانات الاستجابة التي يتم عرضها هي تنسيق JSON.
ملاحظة: إنّ تطبيق واجهة برمجة التطبيقات هذا مخصّص لأغراض التوضيح فقط ولا يمثّل تنفيذًا آمنًا وقويًا لواجهة برمجة التطبيقات. من المفترض أن يتوفّر لنا تطبيق سريع يتيح لنا استكشاف الغرض الرئيسي من هذا التمرين، أي عمليات Google Cloud.
نموذج البيانات وطلب/ردّ من واجهة برمجة التطبيقات
التطبيق لا يعتمد على قاعدة بيانات في الخلفية لتبسيط الأمور. وهي تتضمّن 3 نماذج لمعرّفات المنتجات ومستويات مستودعها الفعلي.
معرِّف المنتج | مستوى المستودع الإعلاني الفعلي |
I-1 | 10 |
I-2 | 20 |
I-3 | 30 |
يمكنك الاطّلاع أدناه على نموذجَي طلب وردّ من واجهة برمجة التطبيقات:
طلب بيانات من واجهة برمجة التطبيقات | ردّ من واجهة برمجة التطبيقات |
https://<somehost>/inventory | [ { "I-1": 10, "I-2": 20, "I-3": 30 }] |
https://<somehost>/inventory/I-1 | { "productid": "I-1", "qty": 10} |
https://<somehost>/inventory/I-2 | { "productid": "I-2", "qty": 20} |
https://<somehost>/inventory/I-200 | { "productid": I-200, "qty": -1} |
استنساخ المستودع
مع أنّه يمكن إدارة Google Cloud عن بُعد من الكمبيوتر المحمول، ستستخدم في هذا الدرس التطبيقي Google Cloud Shell، وهي بيئة سطر أوامر يتم تشغيلها في السحابة الإلكترونية.
من وحدة تحكّم Google Cloud Platform، انقر على رمز Cloud Shell في شريط الأدوات العلوي الأيسر:
من المفترَض أن تستغرق عملية إدارة الحسابات والاتصال بالبيئة بضع لحظات فقط. عند الانتهاء، من المفترض أن يظهر لك شيء مثل هذا:
يتم تحميل هذا الجهاز الافتراضي مع جميع أدوات التطوير التي تحتاجها. وتوفّر هذه الشبكة دليلاً رئيسيًا دائمًا بسعة 5 غيغابايت وتعمل على Google Cloud، ما يحسّن بشكل كبير من أداء الشبكة والمصادقة. يمكنك تنفيذ كل أعمالك في هذا التمرين من خلال متصفح.
إعداد gcloud
في Cloud Shell، اضبط رقم تعريف مشروعك واحفظه كمتغيّر PROJECT_ID.
PROJECT_ID=[YOUR-PROJECT-ID]
gcloud
config
set
project
$PROJECT_ID
الآن، قم بتنفيذ الأمر التالي:
$
git
clone
https://github.com/rominirani/cloud-code-sample-repository.git
سيؤدي ذلك إلى إنشاء مجلد بعنوان cloud-code- sample-repository في هذا المجلد.
(اختياري) تشغيل التطبيق على Cloud Shell
يمكنك تشغيل التطبيق محليًا باتّباع الخطوات التالية:
- من الوحدة الطرفية، انتقل إلى إصدار بايثون من واجهة برمجة التطبيقات باستخدام الأمر التالي:
$
cd
cloud-code-sample-repository
$
cd
python-flask-api
- في الوحدة الطرفية، أدخل الأمر التالي (في وقت الكتابة، كان Cloud Shell مثبّتًا مع Python 3.9.x وسنستخدم الإصدار الافتراضي). فإذا كنت تخطط لتشغيله محليًا على الكمبيوتر المحمول، فيمكنك استخدام Python 3.8+) :
$
python
app.py
- يمكنك تشغيل الأمر التالي لبدء تشغيل خادم Python على الجهاز.
انقر على "معاينة" في المنفذ 8080. 5- سيؤدي ذلك إلى فتح نافذة متصفح. سيظهر لك خطأ 404 وهذا لا بأس به. عدِّل عنوان URL وغيِّره إلى أن يحتوي على /inventory فقط بعد اسم المضيف.
على سبيل المثال: على الجهاز، يبدو الأمر كما يلي:
https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory
سيؤدّي ذلك إلى عرض قائمة بالسلع المتوفّرة في المستودع كما هو موضّح سابقًا:
- يمكنك إيقاف الخادم الآن بالانتقال إلى الوحدة الطرفية والضغط على Ctrl-C
نشر التطبيق
سننشر الآن تطبيق واجهة برمجة التطبيقات هذا في Cloud Run. تضمّنت العملية استخدام عميل سطر الأوامر gcloud لتشغيل الأمر لنشر الرمز في تشغيل الرمز البرمجي على السحابة الإلكترونية.
من الوحدة الطرفية، اكتب الأمر gcloud التالي:
$ gcloud run deploy --source .
سيؤدي هذا إلى طرح عدة أسئلة عليك وبعض النقاط المذكورة أدناه:
- اسم الخدمة (python-flask-api): يمكنك اختيار إما هذا الإعداد التلقائي أو اختيار اسم مثل my-inventory-api
- لم يتم تفعيل واجهة برمجة التطبيقات [run.googleapis.com] في المشروع [613162942481]. هل تريد التفعيل وإعادة المحاولة (سيستغرق ذلك بضع دقائق)؟ (نعم/لا)؟ نعم
- يُرجى تحديد منطقة: اختر 31 (us-west-1)
- لم يتم تفعيل واجهة برمجة التطبيقات [artifactregistry.googleapis.com] في المشروع [613162942481]. هل تريد التفعيل وإعادة المحاولة (سيستغرق ذلك بضع دقائق)؟ (نعم/لا)؟ نعم
- تتطلّب عملية النشر من المصدر توفّر مستودع Artifact Registry Docker لتخزين الحاويات المُدمجة. سيتم إنشاء مستودع باسم [cloud-run-source-deploy] في المنطقة [us-west1].
- هل تريد المتابعة (نعم/لا)؟ نعم
- هل تريد السماح بالاستدعاءات غير المُصدَّق عليها في [my-inventory-api] (y/N)؟ نعم
وفي النهاية، سيتم بدء عملية الحصول على رمز المصدر ووضعه في حاويته وإرساله إلى Artifact Registry ثم نشر خدمة Cloud Run + المراجعة. يجب أن تتحلى بالصبر خلال هذه العملية (يمكن أن تستغرق من 3 إلى 4 دقائق) ويُفترض أن تكتمل العملية مع عرض عنوان URL للخدمة.
في ما يلي نموذج تمرين:
اختبار التطبيق
والآن بعد نشر التطبيق على Cloud Run، يمكنك الوصول إلى تطبيق واجهة برمجة التطبيقات على النحو التالي:
- دوِّن عنوان URL للخدمة من الخطوة السابقة. على سبيل المثال، أثناء الإعداد، يظهر بالتنسيق
https://my-inventory-api-bt2r5243dq-uw.a.run.app
. ولنسم هذا<SERVICE_URL>
. - افتح متصفّحًا وانتقِل إلى عناوين URL الثلاثة التالية لنقاط نهاية واجهة برمجة التطبيقات:
<SERVICE_URL>/inventory
<SERVICE_URL>/inventory/I-1
<SERVICE_URL>/inventory/I-100
ويجب أن يكون متوافقًا مع المواصفات التي قدّمناها في قسم سابق يتضمّن نموذج طلب وردّ من واجهة برمجة التطبيقات.
الحصول على تفاصيل الخدمة من Cloud Run
نشرنا خدمة واجهة برمجة التطبيقات على Cloud Run، وهي بيئة حوسبة بدون خادم. ويمكننا الانتقال إلى خدمة Cloud Run في أي وقت من خلال "وحدة تحكُّم Google Cloud".
من القائمة الرئيسية، انتقل إلى Cloud Run. سيؤدي هذا الإجراء إلى عرض قائمة بالخدمات التي يتم تشغيلها في Cloud Run. من المفترض أن تظهر لك الخدمة التي نشرتها للتو. بناءً على الاسم الذي حددته، يُفترض أن يظهر لك شيء مثل هذا:
انقر على "اسم الخدمة" للاطّلاع على التفاصيل. في ما يلي تفاصيل النموذج:
لاحِظ عنوان URL، وليس عنوان URL الخاص بالخدمة الذي يمكنك تشغيله في المتصفّح والوصول إلى واجهة برمجة التطبيقات Inventory API التي نشرناها للتو. اطّلِع على المقاييس والتفاصيل الأخرى.
لنبدأ الآن باستخدام حزمة Google Cloud Operations.
4. إنشاء موضوع نشر/اشتراك لتلقّي إشعار التنبيه
لإنشاء موضوع نشر/اشتراك، يمكنك اتّباع الخطوات التالية في Google Cloud Console:
- ابحث عن نشر/اشتراك في مربّع البحث، وانتقِل إلى نشر/اشتراك.
- انقر على علامة التبويب المواضيع إذا لم تكن قد أضفتها.
- انقر على الزرّ إنشاء موضوع.
- أدخِل اسمًا لموضوعك.
- انقر على الزر إنشاء.
- انسخ اسم الموضوع باستخدام زر رمز النسخ. ستحتاج إليها في القسم التالي.
5. إنشاء عملية فحص في وقت التشغيل
لإنشاء فحص وقت تشغيل لتطبيق Google Cloud Run:
- انتقِل إلى وحدة تحكُّم Google Cloud Platform.
- انقر على علامة التبويب المراقبة.
- انقر على علامة التبويب Uptime Checks (عمليات الفحص في وقت التشغيل).
- بالقرب من أعلى الصفحة، انقر على الزر إنشاء عمليات الفحص في وقت التشغيل.
- استخدِم القيم التالية:
- البروتوكول : HTTPS
- نوع المورد : عنوان URL
- اسم المضيف : أدخِل جزء عنوان URL لخدمة Cloud Run بدون https. يظهر عيّنة في الشاشة أدناه. إذا لم تكن متأكدًا من عنوان URL للخدمة، فانتقل إلى تشغيل السحابة الإلكترونية من وحدة التحكم الرئيسية في Google Cloud وانتقل إلى تفاصيل خدمة تشغيل السحابة الإلكترونية كما هو موضح من قبل للحصول على عنوان URL للخدمة.
- المسار : سليم
- معدلّ التحقّق: دقيقة واحدة
- انقر على متابعة.
- فعِّل الخيار تم تفعيل ميزة "مطابقة المحتوى"
- أدخِل عبارة "All Izz Well" ضمن محتوى الرد، أو تكون هذه السلسلة موجودة فعلاً في التطبيق عندما ترسل ردودًا كاملة.
- Keep
- يجب ضبط رمز استجابة HTTP المقبولة على فئات رمز الاستجابة و2xx كفئة رمز الاستجابة الوحيدة. بهذه الطريقة، سيتمّ تقييم رموز الاستجابة التي تتضمّن 2xx فقط للسلسلة، وأي أخطاء أخرى سيتمّ احتسابها تلقائيًا على أنّها عملية تحقّق فاشلة.
- انقر على متابعة.
- اختَر موضوع Cloud Pub/Sub كقناة الإشعارات، ثم انقر على OK (حسنًا).
- انقر على متابعة.
- أضِف عنوانًا معروفًا
- انقر على الزر اختبار.
- راجِعها وانقر على الزر إنشاء عندما تصبح جاهزة
سيتم إنشاء فحص وقت التشغيل وسيبدأ مراقبة تطبيق Cloud Run. يمكنك الاطّلاع على حالة عمليات الفحص في وقت التشغيل ضمن علامة التبويب عمليات الفحص في وقت التشغيل.
6. تهانينا
تهانينا، لقد أعددت ميزة "البحث في وقت التشغيل" بنجاح لإرسال التنبيهات إلى خدمة النشر/الاشتراك.