التنبيهات: عمليات الفحص في وقت التشغيل لمواضيع النشر/الاشتراك

1. مقدمة

تاريخ آخر تعديل: 21 يونيو 2023

التنبيه بشأن عمليات فحص وقت التشغيل للتأكّد من التوفّر

يتيح لك التنبيه بشأن عمليات الفحص في وقت التشغيل تحديد المشاكل التي قد تؤثّر في خدماتك وحلّها بسرعة. من خلال تلقّي تنبيهات بشأن حالات الانقطاع، يمكنك اتّخاذ خطوات للحدّ من التأثير على المستخدمين والعملاء.

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

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

لمزيد من المعلومات حول الحالات التي يجب فيها استخدام عمليات الفحص في وقت التشغيل، يُرجى الرجوع إلى ضمان مدة تشغيل موارد Google Cloud.

مواضيع Pub/Sub كقناة لإرسال إشعارات التنبيهات

يمكن استخدام موضوع Pub/Sub كقناة إشعارات في Google Cloud Monitoring لإرسال تنبيهات إلى اشتراك Pub/Sub. يتيح لك ذلك دمج تنبيهات Cloud Monitoring مع أنظمة أخرى، بما في ذلك خدمات الإشعارات التابعة لجهات خارجية.

لاستخدام موضوع Pub/Sub كقناة إشعارات، عليك أولاً إنشاء موضوع Pub/Sub واشتراك Pub/Sub. بعد ذلك، عليك إنشاء قناة إشعارات في Cloud Monitoring تستخدم موضوع Pub/Sub كوجهة.

عند تشغيل تنبيه، سترسل خدمة Cloud Monitoring رسالة إلى موضوع Pub/Sub. يمكن للمشترك في اشتراك Pub/Sub بعد ذلك معالجة الرسالة واتّخاذ الإجراء المناسب.

ما ستنشئه

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

ما ستتعلمه

  • كيفية إنشاء موضوع Pub/Sub
  • كيفية إنشاء عملية تحقّق من وقت التشغيل وتنبيه

يركّز هذا الدرس التطبيقي حول الترميز على إنشاء تنبيه لفحص وقت التشغيل. يتم تجاهل المفاهيم غير ذات الصلة والرمز البرمجي للتطبيق، ويتم توفيرها لك لنسخها ولصقها ببساطة.

المتطلبات

  • حساب Google Cloud لديه الأذونات التالية:
  • نشر تطبيقات Cloud Run
  • إنشاء مواضيع Pub/Sub
  • إنشاء عمليات فحص وقت التشغيل
  • إنشاء تنبيهات

2. الإعداد

اختيار مشروع Google Cloud أو إنشاؤه

لاختيار مشروع حالي، استخدِم القائمة المنسدلة:

b35bf95b8bf3d5d8.png

لإنشاء مشروع جديد في Google Cloud، يمكنك اتّباع الخطوات التالية:

  1. انتقِل إلى وحدة تحكّم Google Cloud Platform.
  2. انقر على الزر إنشاء مشروع.
  3. أدخِل اسمًا لمشروعك.
  4. اختَر حساب فوترة لمشروعك.
  5. انقر على الزر إنشاء.

سيتم إنشاء مشروعك وسيتم نقلك إلى لوحة بيانات المشروع. بعد ذلك، يمكنك البدء في استخدام خدمات Google Cloud.

في ما يلي بعض التفاصيل الإضافية حول كل خطوة:

  • الاسم: يجب أن يكون اسم مشروعك فريدًا داخل مؤسستك.
  • حساب الفوترة: يمكنك استخدام حساب فوترة حالي أو إنشاء حساب جديد.
  • إنشاء: بعد إدخال جميع المعلومات المطلوبة، انقر على الزر إنشاء لإنشاء مشروعك.

لمزيد من المعلومات، يُرجى الاطّلاع على مستندات Google Cloud حول إنشاء المشاريع.

3- نشر تطبيق واجهة برمجة التطبيقات

ما هو موضوع التطبيق النموذجي أو واجهة برمجة التطبيقات؟

تطبيقنا هو تطبيق بسيط لواجهة برمجة التطبيقات Inventory API يعرض نقطة نهاية REST API مع عمليتين لعرض عناصر المستودع والحصول على عدد مستودع عنصر معيّن.

بعد نشر واجهة برمجة التطبيقات، وبافتراض أنّها مستضافة على https://<somehost>، يمكننا الوصول إلى نقاط نهاية واجهة برمجة التطبيقات على النحو التالي:

https://<somehost>/inventory

سيتم عرض قائمة بجميع المنتجات مع مستويات المستودع المتوفرة.

https://<somehost>/inventory/{productid}

سيؤدي ذلك إلى توفير سجلّ واحد يتضمّن 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 في شريط الأدوات العلوي الأيسر:

bce75f34b2c53987.png

لن يستغرق توفير البيئة والاتصال بها سوى بضع لحظات. عند الانتهاء، من المفترض أن يظهر لك ما يلي:

f6ef2b5f13479f3a.png

يتم تحميل هذا الجهاز الافتراضي بجميع أدوات التطوير التي تحتاج إليها. توفّر هذه الخدمة دليلًا منزليًا ثابتًا بسعة 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

يمكنك تشغيل التطبيق محليًا باتّباع الخطوات التالية:

  1. من الوحدة الطرفية، انتقِل إلى إصدار Python من واجهة برمجة التطبيقات باستخدام الأمر التالي:

$ cd cloud-code-sample-repository

$ cd python-flask-api

  1. في نافذة الجهاز، أدخِل الأمر التالي (في وقت كتابة هذا المستند، يتضمّن Cloud Shell الإصدار 3.9.x من Python، وسنستخدم الإصدار التلقائي. إذا كنت تخطّط لتشغيله محليًا على الكمبيوتر المحمول، يمكنك استخدام الإصدار 3.8 من Python أو إصدار أحدث:

$ python app.py

  1. يمكنك تنفيذ الأمر التالي لبدء خادم Python محليًا.

1f798fbddfdc2c8e.png 46edf454cc70c5a6.png

انقر على "معاينة" على المنفذ 8080. 5- سيؤدي ذلك إلى فتح نافذة متصفّح. سيظهر لك الخطأ 404، وهذا أمر طبيعي. عدِّل عنوان URL واجعله يتضمّن /inventory فقط بعد اسم المضيف.

على سبيل المثال، يظهر على جهازي بالشكل التالي:

https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory

سيؤدي ذلك إلى عرض قائمة عناصر المستودع كما هو موضّح سابقًا:

709d57ee2f0137e4.png

  1. يمكنك إيقاف الخادم الآن من خلال الانتقال إلى "الوحدة الطرفية" والضغط على Ctrl-C

نشر التطبيق

سننشر الآن تطبيق واجهة برمجة التطبيقات هذا على Cloud Run. تضمّنت العملية استخدام أداة سطر الأوامر gcloud لتنفيذ الأمر اللازم لنشر الرمز البرمجي على Cloud Run.

من الوحدة الطرفية، أدخِل أمر gcloud التالي:

$ gcloud run deploy --source .

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

  1. اسم الخدمة (python-flask-api): يمكنك استخدام هذا الاسم التلقائي أو اختيار اسم آخر، مثل my-inventory-api
  2. لم يتم تفعيل واجهة برمجة التطبيقات [run.googleapis.com] في المشروع [613162942481]. هل تريد تفعيلها وإعادة المحاولة (سيستغرق ذلك بضع دقائق)؟ (y/N)؟ نعم
  3. يُرجى تحديد منطقة: اختَر 31 (us-west-1)
  4. لم يتم تفعيل واجهة برمجة التطبيقات [artifactregistry.googleapis.com] في المشروع [613162942481]. هل تريد تفعيلها وإعادة المحاولة (سيستغرق ذلك بضع دقائق)؟ (y/N)؟ نعم
  5. يتطلّب النشر من المصدر مستودع Artifact Registry Docker لتخزين الحاويات التي تم إنشاؤها. سيتم إنشاء مستودع باسم [cloud-run-source-deploy] في المنطقة [us-west1].
  6. هل تريد المتابعة (نعم/لا)؟ نعم
  7. Allow unauthenticated invocations to [my-inventory-api] (y/N)? نعم

سيؤدي ذلك في النهاية إلى بدء عملية أخذ الرمز المصدر ووضعه في حاوية وإرساله إلى Artifact Registry ثم نشر خدمة Cloud Run وإصدارها. يجب التحلي بالصبر أثناء هذه العملية (قد تستغرق من 3 إلى 4 دقائق)، ومن المفترض أن تكتمل العملية ويظهر لك عنوان URL الخاص بالخدمة.

في ما يلي نموذج لعملية التنفيذ:

87ba8dbf88e8cfa4.png

اختبار التطبيق

بعد نشر التطبيق على Cloud Run، يمكنك الوصول إلى تطبيق واجهة برمجة التطبيقات على النحو التالي:

  1. سجِّل عنوان URL الخاص بالخدمة من الخطوة السابقة. على سبيل المثال، يظهر في إعداداتي على النحو التالي: https://my-inventory-api-bt2r5243dq-uw.a.run.app. لنسمّي هذا <SERVICE_URL>.
  2. افتح متصفحًا وانتقِل إلى عناوين URL الثلاثة التالية لنقاط نهاية واجهة برمجة التطبيقات:
  3. <SERVICE_URL>/inventory
  4. <SERVICE_URL>/inventory/I-1
  5. <SERVICE_URL>/inventory/I-100

يجب أن يكون التنسيق مطابقًا للمواصفات التي قدّمناها في قسم سابق مع نموذج لطلب بيانات من واجهة برمجة التطبيقات ونموذج لردّ.

الحصول على تفاصيل الخدمة من Cloud Run

نشرنا خدمة واجهة برمجة التطبيقات على Cloud Run، وهي بيئة حوسبة بدون خادم. يمكننا الانتقال إلى خدمة Cloud Run من خلال Google Cloud Console في أي وقت.

من القائمة الرئيسية، انتقِل إلى Cloud Run. سيؤدي ذلك إلى عرض قائمة بالخدمات التي يتم تشغيلها في Cloud Run. من المفترض أن تظهر لك الخدمة التي تم نشرها للتو. استنادًا إلى الاسم الذي اخترته، من المفترض أن يظهر لك ما يلي:

2633965c4bc957cc.png

انقر على اسم الخدمة للاطّلاع على التفاصيل. في ما يلي تفاصيل النموذج:

33042ae64322ce07.png

لاحظ عنوان URL، وهو ليس سوى عنوان URL للخدمة يمكنك إدخاله في المتصفّح والوصول إلى Inventory API الذي تم نشره للتو. اطّلِع على المقاييس والتفاصيل الأخرى.

لنبدأ باستخدام "حزمة عمليات Google Cloud" الآن.

4. إنشاء موضوع Pub/Sub لتلقّي إشعار التنبيه

لإنشاء موضوع Pub/Sub، يمكنك اتّباع الخطوات التالية في Google Cloud Console:

  1. ابحث عن Pub/Sub في مربّع البحث، ثم انتقِل إلى Pub/Sub. 935028bd8f6328ef.png
  2. انقر على علامة التبويب المواضيع إذا لم تكن في هذه الصفحة. 7fd8bf91386a88fd.png
  3. انقر على الزر إنشاء موضوع. cd9d197f9023c41b.png
  4. أدخِل اسمًا للموضوع.

173f313b4a3c4934.png

  1. انقر على الزر إنشاء. ca9a02477da21a44.png
  2. انسخ اسم الموضوع باستخدام زر رمز النسخ. ستحتاج إليه في القسم التالي.

20848252ee83df93.png

5- إنشاء فحص لوقت التشغيل

لإنشاء عملية فحص في وقت التشغيل لتطبيق Google Cloud Run، اتّبِع الخطوات التالية:

  1. انتقِل إلى وحدة تحكّم Google Cloud Platform.
  2. انقر على علامة التبويب المراقبة.
  3. انقر على علامة التبويب عمليات التحقّق من وقت التشغيل.
  4. بالقرب من أعلى الصفحة، انقر على الزر إنشاء عملية فحص لوقت التشغيل.

96561799ca500777.png

  1. استخدِم القيم التالية:
  2. البروتوكول : HTTPS
  3. نوع المرجع : عنوان URL
  4. اسم المضيف : أدخِل جزء عنوان URL الخاص بخدمة Cloud Run بدون https. يمكنك الاطّلاع على عيّنة في الشاشة أدناه. إذا لم تكن متأكدًا من عنوان URL للخدمة، انتقِل إلى Cloud Run من Google Cloud Console الرئيسية وانتقِل إلى تفاصيل خدمة Cloud Run كما هو موضّح سابقًا للحصول على عنوان URL للخدمة.
  5. المسار : healthy
  6. تكرار التحقّق: دقيقة واحدة

342865c6d921ff41.png

  1. انقر على متابعة.
  2. فعِّل الخيار تم تفعيل ميزة "مطابقة المحتوى"
  3. أدخِل "All Izz Well" ضمن محتوى الرد، فهذه السلسلة متوفّرة في التطبيق عند إرسال الردود الكاملة.
  4. Keep

6c9ad336b5479478.png

  1. اترك رمز استجابة HTTP مقبول مضبوطًا على فئات رموز الاستجابة، و2xx كفئة رموز الاستجابة الوحيدة. بهذه الطريقة، سيتم تقييم رموز الاستجابة التي تتضمّن 2xx فقط للسلسلة، وسيتم تلقائيًا احتساب أي شيء آخر كعملية تحقّق غير ناجحة. 5a75d8a9e8a11dd4.png
  2. انقر على متابعة.
  3. اختَر موضوع Cloud Pub/Sub كقناة إشعارات، ثم انقر على موافق.

d00db9f6ac56d07c.png

  1. انقر على متابعة.
  2. إضافة عنوان يسهل التعرّف عليه d639135da780cce3.png
  3. انقر على الزر اختبار.

968753a66ed43a75.png

  1. راجِع الإعدادات وانقر على الزر إنشاء عندما تكون جاهزًا 72e5e2081a36d902.png

سيتم إنشاء عملية فحص وقت التشغيل وستبدأ في مراقبة تطبيق Cloud Run. يمكنك الاطّلاع على حالة عملية التحقّق من وقت التشغيل في علامة التبويب عمليات التحقّق من وقت التشغيل.

3fd026b0c07ef4ec.png

6. تهانينا

تهانينا، لقد نجحت في إعداد ميزة "التحقّق من وقت التشغيل" لإرسال تنبيهات إلى Pub/Sub.