सूचनाएं: Pub/Sub विषयों के लिए अपटाइम चेक

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 Console पर जाएं.
  2. प्रोजेक्ट बनाएं बटन पर क्लिक करें.
  3. अपने प्रोजेक्ट के लिए कोई नाम डालें.
  4. अपने प्रोजेक्ट के लिए कोई बिलिंग खाता चुनें.
  5. बनाएं बटन पर क्लिक करें.

आपका प्रोजेक्ट बन जाएगा और आपको प्रोजेक्ट डैशबोर्ड पर ले जाया जाएगा. इसके बाद, Google Cloud की सेवाओं का इस्तेमाल शुरू किया जा सकता है.

यहां हर चरण के बारे में कुछ और जानकारी दी गई है:

  • नाम: आपके प्रोजेक्ट का नाम, आपके संगठन के अन्य प्रोजेक्ट के नाम से अलग होना चाहिए.
  • बिलिंग खाता: किसी मौजूदा बिलिंग खाते का इस्तेमाल किया जा सकता है या नया बिलिंग खाता बनाया जा सकता है.
  • बनाएं: सभी ज़रूरी जानकारी डालने के बाद, अपना प्रोजेक्ट बनाने के लिए बनाएं बटन पर क्लिक करें.

ज़्यादा जानकारी के लिए, कृपया प्रोजेक्ट बनाने के बारे में Google Cloud का दस्तावेज़ देखें.

3. एपीआई ऐप्लिकेशन को डिप्लॉय करना

सैंपल ऐप्लिकेशन या एपीआई किस बारे में है?

हमारा ऐप्लिकेशन, Inventory API का एक सामान्य ऐप्लिकेशन है. यह REST API एंडपॉइंट को दिखाता है. इसमें इन्वेंट्री आइटम की सूची बनाने और किसी खास आइटम की इन्वेंट्री की संख्या पाने के लिए कुछ कार्रवाइयां की जाती हैं.

एपीआई को डिप्लॉय करने के बाद, मान लें कि इसे https://<somehost> पर होस्ट किया गया है. ऐसे में, एपीआई एंडपॉइंट को इस तरह से ऐक्सेस किया जा सकता है:

https://<somehost>/inventory

इससे, आपको ऐसे सभी प्रॉडक्ट आइटम की सूची दिखेगी जिनकी इन्वेंट्री मौजूद है.

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

इससे, प्रॉडक्ट आईडी और उस प्रॉडक्ट के लिए उपलब्ध इन्वेंट्री लेवल की जानकारी वाला एक रिकॉर्ड मिलेगा.

जवाब में मिला डेटा, JSON फ़ॉर्मैट में होता है.

ध्यान दें: इस एपीआई ऐप्लिकेशन का इस्तेमाल सिर्फ़ डेमो के लिए किया जाता है. यह सुरक्षित और भरोसेमंद एपीआई को लागू करने का तरीका नहीं है. इसका मकसद, हमें एक ऐसा ऐप्लिकेशन उपलब्ध कराना है जिसे हम तुरंत इस्तेमाल कर सकें. इससे हम लैब के मुख्य मकसद, यानी कि Google Cloud Operations के बारे में जान पाएंगे.

डेटा और एपीआई अनुरोध/जवाब का सैंपल

इस ऐप्लिकेशन के बैकएंड में कोई डेटाबेस नहीं है, ताकि इसे इस्तेमाल करना आसान हो. इसमें तीन सैंपल प्रॉडक्ट आईडी और उनकी मौजूदा इन्वेंट्री के लेवल शामिल हैं.

प्रॉडक्ट आईडी

मौजूदा इन्वेंट्री लेवल

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 का इस्तेमाल किया जाएगा. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.

GCP Console में, सबसे ऊपर दाईं ओर मौजूद टूलबार पर मौजूद 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 में Python 3.9.x इंस्टॉल होता है और हम डिफ़ॉल्ट वर्शन का इस्तेमाल करेंगे. अगर आपको इसे अपने लैपटॉप पर स्थानीय तौर पर चलाना है, तो Python 3.8+ का इस्तेमाल करें :

$ python app.py

  1. Python सर्वर को स्थानीय तौर पर शुरू करने के लिए, यह कमांड चलाएं.

1f798fbddfdc2c8e.png 46edf454cc70c5a6.png

पोर्ट 8080 पर झलक देखें पर क्लिक करें. 5. इससे ब्राउज़र विंडो खुलेगी. आपको 404 गड़बड़ी दिखेगी. यह सामान्य है. यूआरएल में बदलाव करें और होस्ट नेम के बाद सिर्फ़ /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. प्रोजेक्ट [613162942481] पर एपीआई [run.googleapis.com] चालू नहीं है. क्या आपको इसे चालू करके फिर से कोशिश करनी है? इसमें कुछ मिनट लगेंगे. (y/N)? Y
  3. कृपया कोई क्षेत्र चुनें: 31 (us-west-1) चुनें
  4. प्रोजेक्ट [613162942481] पर एपीआई [artifactregistry.googleapis.com] चालू नहीं है. क्या आपको इसे चालू करके फिर से कोशिश करनी है? इसमें कुछ मिनट लगेंगे. (y/N)? Y
  5. सोर्स से डिप्लॉय करने के लिए, Artifact Registry Docker repository की ज़रूरत होती है. इसमें बनाए गए कंटेनर सेव किए जाते हैं. [us-west1] क्षेत्र में [cloud-run-source-deploy] नाम की एक रिपॉज़िटरी बनाई जाएगी.
  6. क्या आपको जारी रखना है (Y/n)? Y
  7. क्या पुष्टि न किए गए उपयोगकर्ताओं को [my-inventory-api] को कॉल करने की अनुमति देनी है (y/N)? Y

इसके बाद, सोर्स कोड लेने, उसे कंटेनर में रखने, उसे Artifact Registry में पुश करने, और फिर Cloud Run सेवा + संशोधन को डिप्लॉय करने की प्रोसेस शुरू हो जाएगी. इस प्रोसेस के दौरान आपको इंतज़ार करना चाहिए. इसमें तीन से चार मिनट लग सकते हैं. साथ ही, आपको सर्विस यूआरएल के साथ प्रोसेस पूरी होते हुए दिखनी चाहिए.

यहां सैंपल रन दिखाया गया है:

87ba8dbf88e8cfa4.png

ऐप्लिकेशन को टेस्ट करना

हमने ऐप्लिकेशन को Cloud Run पर डिप्लॉय कर दिया है. अब एपीआई ऐप्लिकेशन को इस तरह ऐक्सेस किया जा सकता है:

  1. पिछले चरण में मिले सेवा के यूआरएल को नोट करें. उदाहरण के लिए, मेरे सेटअप पर इसे https://my-inventory-api-bt2r5243dq-uw.a.run.app के तौर पर दिखाया गया है. इसे <SERVICE_URL> कहते हैं.
  2. कोई ब्राउज़र खोलें और एपीआई एंडपॉइंट के लिए, इन तीन यूआरएल को ऐक्सेस करें:
  3. <SERVICE_URL>/inventory
  4. <SERVICE_URL>/inventory/I-1
  5. <SERVICE_URL>/inventory/I-100

यह उन खास बातों के मुताबिक होना चाहिए जो हमने पिछले सेक्शन में, एपीआई अनुरोध और जवाब के सैंपल के साथ दी थीं.

Cloud Run से सेवा की जानकारी पाना

हमने अपनी एपीआई सेवा को Cloud Run पर डिप्लॉय किया है. यह बिना सर्वर वाला कंप्यूट एनवायरमेंट है. हम Google Cloud Console के ज़रिए, Cloud Run सेवा पर कभी भी जा सकते हैं.

मुख्य मेन्यू में जाकर, Cloud Run पर जाएं. इससे, Cloud Run में चल रही सेवाओं की सूची दिखेगी. आपको वह सेवा दिखेगी जिसे आपने अभी-अभी डिप्लॉय किया है. आपने जो नाम चुना है उसके हिसाब से, आपको कुछ ऐसा दिखेगा:

2633965c4bc957cc.png

जानकारी देखने के लिए, सेवा के नाम पर क्लिक करें. सैंपल की जानकारी यहां दी गई है:

33042ae64322ce07.png

यूआरएल पर ध्यान दें. यह सेवा का यूआरएल है. इसे ब्राउज़र में डालकर, अभी डिप्लॉय किए गए Inventory API को ऐक्सेस किया जा सकता है. मेट्रिक और अन्य जानकारी देखें.

अब Google Cloud Operations Suite के बारे में जानते हैं.

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 Console पर जाएं.
  2. मॉनिटरिंग टैब पर क्लिक करें.
  3. अपटाइम की जांच टैब पर क्लिक करें.
  4. पेज में सबसे ऊपर, अपटाइम की जांच बनाएं बटन पर क्लिक करें.

96561799ca500777.png

  1. इन वैल्यू का इस्तेमाल करें:
  2. प्रोटोकॉल : HTTPS
  3. संसाधन का टाइप : यूआरएल
  4. होस्टनेम : Cloud Run सेवा के यूआरएल का वह हिस्सा डालें जिसमें https शामिल न हो. नीचे स्क्रीन में एक सैंपल दिया गया है. अगर आपको सेवा के यूआरएल के बारे में नहीं पता है, तो मुख्य Google Cloud Console से Cloud Run पर जाएं. इसके बाद, Cloud Run सेवा की जानकारी पर जाएं. सेवा का यूआरएल पाने का तरीका ऊपर बताया गया है.
  5. पाथ : healthy
  6. चेक करने की फ़्रीक्वेंसी: 1 मिनट

342865c6d921ff41.png

  1. जारी रखें पर क्लिक करें
  2. कॉन्टेंट मैचिंग की सुविधा चालू है को चालू करें
  3. जवाब का कॉन्टेंट में जाकर, "सब ठीक है" डालें. यह स्ट्रिंग, पूरे जवाब भेजने पर ऐप्लिकेशन में पहले से मौजूद होती है.
  4. Keep

6c9ad336b5479478.png

  1. मान्य एचटीटीपी रिस्पॉन्स कोड को रिस्पॉन्स कोड क्लास पर सेट रखें. साथ ही, 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 को सूचनाएं भेजने के लिए, अपटाइम चेक को कॉन्फ़िगर कर लिया है!