इस कोडलैब (कोड बनाना सीखने के लिए ट्यूटोरियल) के बारे में जानकारी
1. परिचय
पिछली बार अपडेट किए जाने की तारीख: 21 जून, 2023
उपलब्धता की जानकारी के लिए, अपटाइम चेक के बारे में सूचना देना
अपटाइम जांच के बारे में सूचना देने से, आपको उन समस्याओं की तुरंत पहचान करके उन्हें हल करने में मदद मिलती है जो आपकी सेवाओं पर असर डाल सकते हैं. कुछ समय के लिए उपलब्ध नहीं होने की सूचना देकर, अपने उपयोगकर्ताओं और ग्राहकों पर पड़ने वाले असर को कम करने के लिए ज़रूरी कदम उठाए जा सकते हैं.
अपटाइम चेक की अवधि 60 सेकंड होती है और यह अवधि कम से कम 60 सेकंड होती है. अगर आपको जानकारी का स्तर 60 सेकंड से ज़्यादा चाहिए, तो गड़बड़ी के कोड को डाइनैमिक इवेंट के तौर पर मॉनिटर करना, लॉग के आधार पर मिलने वाली सूचनाओं की मदद से, खरीदारी के उपलब्ध न होने के अतिरिक्त इंडिकेटर के तौर पर काम का हो सकता है. अगर 60 सेकंड या इससे ज़्यादा समय का इंटरवल स्वीकार किया जाता है, तो अपटाइम चेक कुछ अतिरिक्त कॉन्फ़िगरेशन के साथ आपकी सेवा को मेज़र करने का एक आसान तरीका है.
अगर कोई सेवा उपलब्ध नहीं है, तो अपटाइम जांच की मदद से ट्रैफ़िक न होने पर भी समस्या का पता लगाया जाएगा. वहीं दूसरी ओर, ट्रैफ़िक पर कई वजहों से असर पड़ सकता है. जैसे, रखरखाव, अपग्रेड, और यहां तक कि सिस्टम से बाहर की चीज़ों की वजह से भी ट्रैफ़िक पर असर पड़ सकता है. जैसे, खराब मौसम या खेल-कूद के ऐसे इवेंट जिनकी वजह से उपयोगकर्ताओं का ध्यान भटकता है.
अपटाइम जांच का इस्तेमाल कब करना है, इस बारे में ज़्यादा जानकारी के लिए, कृपया अपने Google Cloud संसाधनों का अपटाइम पक्का करना देखें.
चेतावनी की सूचना देने वाले चैनल के तौर पर Pub/Sub विषयों की जानकारी
Pub/Sub सदस्यता को सूचनाएं भेजने के लिए, किसी Pub/Sub विषय का इस्तेमाल Google Cloud निगरानी के सूचना चैनल के तौर पर किया जा सकता है. इससे आपको क्लाउड मॉनिटरिंग से मिलने वाली सूचनाओं को अन्य सिस्टम के साथ इंटिग्रेट करने में मदद मिलती है. इनमें तीसरे पक्ष की सूचना सेवाएं भी शामिल हैं.
किसी Pub/Sub विषय का इस्तेमाल सूचना चैनल के तौर पर करने के लिए, आपको सबसे पहले एक Pub/Sub विषय और एक Pub/Sub सदस्यता बनानी होगी. इसके बाद, आपको क्लाउड निगरानी की सुविधा की सूचना का एक ऐसा चैनल बनाना होगा जो डेस्टिनेशन के तौर पर Pub/Sub विषय का इस्तेमाल करता हो.
कोई चेतावनी ट्रिगर होने पर, Cloud मॉनिटर, Pub/Sub विषय पर एक मैसेज भेजेगा. इसके बाद, Pub/Sub सदस्यता का सदस्य मैसेज को प्रोसेस कर सकता है और ज़रूरी कार्रवाई कर सकता है.
आपको क्या बनाना होगा
इस कोडलैब में, एक ऐप्लिकेशन डिप्लॉय किया जाएगा और Pub/Sub विषय बनाया जाएगा. साथ ही, उस ऐप्लिकेशन के लिए सक्रिय समय की जांच की सूचना बनाई जाएगी जो Pub/Sub विषय का इस्तेमाल सूचना चैनल के तौर पर करता है.
आपको इनके बारे में जानकारी मिलेगी
- Pub/Sub के लिए विषय बनाने का तरीका
- अपटाइम चेक और अलर्ट बनाने का तरीका
इस कोडलैब का फ़ोकस, किसी अपटाइम चेक के लिए अलर्ट बनाने पर है. ग़ैर-ज़रूरी कॉन्सेप्ट और ऐप्लिकेशन कोड छिपा दिए जाते हैं. आपको दिए गए हैं, ताकि आप उन्हें आसानी से कॉपी करके चिपका सकें.
आपको इन चीज़ों की ज़रूरत होगी
- आपके पास ऐसा Google Cloud खाता होना चाहिए जिसके पास ये अनुमतियां हों:
- क्लाउड रन ऐप्लिकेशन डिप्लॉय करें
- Pub/Sub विषय बनाना
- अपटाइम चेक बनाएं
- सूचनाएं बनाएं
2. सेट अप किया जा रहा है
Google Cloud प्रोजेक्ट चुनना या बनाना
किसी मौजूदा प्रोजेक्ट को चुनने के लिए, ड्रॉपडाउन का इस्तेमाल करें:
Google Cloud में नया प्रोजेक्ट बनाने के लिए, यह तरीका अपनाएं:
- Google Cloud Platform Console पर जाएं.
- प्रोजेक्ट बनाएं बटन पर क्लिक करें.
- अपने प्रोजेक्ट का नाम डालें.
- अपने प्रोजेक्ट के लिए कोई बिलिंग खाता चुनें.
- बनाएं बटन पर क्लिक करें.
आपका प्रोजेक्ट बनाया जाएगा और आपको प्रोजेक्ट के डैशबोर्ड पर ले जाया जाएगा. यहां से, Google Cloud की सेवाओं का इस्तेमाल किया जा सकता है.
यहां हर चरण के बारे में अतिरिक्त जानकारी दी गई है:
- नाम: आपके प्रोजेक्ट का नाम आपके संगठन में यूनीक होना चाहिए.
- बिलिंग खाता: किसी मौजूदा बिलिंग खाते का इस्तेमाल किया जा सकता है या नया खाता बनाया जा सकता है.
- बनाएं: सभी ज़रूरी जानकारी डालने के बाद, प्रोजेक्ट बनाने के लिए बनाएं बटन पर क्लिक करें.
ज़्यादा जानकारी के लिए, कृपया प्रोजेक्ट बनाने से जुड़ा Google Cloud का दस्तावेज़ देखें.
3. एपीआई ऐप्लिकेशन डिप्लॉय करें
सैंपल ऐप्लिकेशन या एपीआई किस बारे में है?
हमारा ऐप्लिकेशन एक आसान Inventory API ऐप्लिकेशन है. यह REST API एंडपॉइंट को कई कार्रवाइयों के साथ दिखाता है, ताकि इन्वेंट्री आइटम की सूची बनाई जा सके और खास आइटम इन्वेंट्री की गिनती की जा सके.
एपीआई को डिप्लॉय करने और यह मानने के बाद कि उसे https://<somehost> पर होस्ट किया गया है, हम एपीआई एंडपॉइंट को इस तरह ऐक्सेस कर सकते हैं:
https://<somehost>/inventory
इससे वे सभी प्रॉडक्ट आइटम लिस्ट हो जाएंगे जो इन्वेंट्री लेवल पर होंगे.
https://<somehost>/inventory/{productid}
इससे उस प्रॉडक्ट के लिए 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 कंसोल में, सबसे ऊपर दाईं ओर मौजूद टूलबार पर क्लाउड शेल आइकॉन पर क्लिक करें:
प्रावधान करने और एनवायरमेंट से कनेक्ट होने में कुछ ही समय लगेगा. उसके पूरा हो जाने पर, आपको कुछ ऐसा दिखाई देगा:
इस वर्चुअल मशीन में ऐसे सभी डेवलपमेंट टूल मौजूद हैं जिनकी आपको ज़रूरत है. यह पांच जीबी की स्थायी होम डायरेक्ट्री उपलब्ध कराता है और Google Cloud पर चलता है. यह नेटवर्क की परफ़ॉर्मेंस और पुष्टि करने की प्रक्रिया को बेहतर बनाता है. इस लैब में आपका सारा काम बस एक ब्राउज़र से किया जा सकता है.
gcloud सेट अप करें
क्लाउड शेल में अपना प्रोजेक्ट आईडी सेट करें और उसे 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 पर ऐप्लिकेशन चलाएं
आप इन चरणों का पालन करके ऐप्लिकेशन को स्थानीय तौर पर चला सकते हैं:
- टर्मिनल से, नीचे दिए गए कमांड की मदद से एपीआई के Python वर्शन पर जाएं:
$
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 कोड वाली गड़बड़ी दिखेगी. यूआरएल में बदलाव करें और इसे बदल कर होस्ट नाम के बाद बस /inventory डालें.
उदाहरण के लिए मेरी मशीन पर, यह इस तरह दिखता है:
https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory
इससे इन्वेंट्री आइटम की सूची दिखेगी, जैसा कि पहले बताया गया है:
- अब आप टर्मिनल पर जाकर और Ctrl-C दबाकर सर्वर को बंद कर सकते हैं
ऐप्लिकेशन को डिप्लॉय करना
अब हम इस एपीआई ऐप्लिकेशन को Cloud Run पर डिप्लॉय करेंगे. Cloud Run में कोड को डिप्लॉय करने के लिए, कमांड चलाने के लिए gcloud कमांड लाइन क्लाइंट का इस्तेमाल करना इस प्रक्रिया में शामिल है.
टर्मिनल से, नीचे दिया गया gcloud निर्देश दें:
$ gcloud run deploy --source .
इसमें आपसे कई सवाल पूछे जाएंगे और कुछ बातों के बारे में नीचे बताया गया है:
- सेवा का नाम (Python-flask-api): या तो इस डिफ़ॉल्ट सेवा का इस्तेमाल करें या my-inventory-api जैसा कुछ चुनें
- प्रोजेक्ट पर एपीआई [run.googleapis.com] चालू नहीं है [613162942481]. क्या आपको इसे चालू करके, फिर से कोशिश करनी है (इसमें कुछ मिनट लगेंगे)? (हां/नहीं)? Y
- कृपया देश या इलाके की जानकारी दें: 31 चुनें (us-west-1)
- प्रोजेक्ट पर एपीआई [artifactregistry.googleapis.com] चालू नहीं है [613162942481]. क्या आपको इसे चालू करके, फिर से कोशिश करनी है (इसमें कुछ मिनट लगेंगे)? (हां/नहीं)? Y
- बनाए गए कंटेनर को स्टोर से डिप्लॉय करने के लिए, Artifact Registry Docker डेटा स्टोर करने की जगह की ज़रूरत होती है. [us-west1] क्षेत्र में [cloud-run-source-deploy] नाम की एक रिपॉज़िटरी बनाई जाएगी.
- क्या आपको जारी रखना है (हां/नहीं)? Y
- [my-inventory-api] (y/N) में, बिना पुष्टि वाले अनुरोध भेजने की अनुमति देनी है? Y
आखिर में, इससे आपका सोर्स कोड लेने, उसे कंटेनर में रखने, और उसे Artifact Registry में भेजने की प्रोसेस शुरू हो जाएगी. इसके बाद, Cloud Run सेवा + वर्शन को डिप्लॉय किया जाएगा. इस प्रोसेस को पूरा करने के लिए आपको थोड़ा इंतज़ार करना होगा. इसमें तीन से चार मिनट लग सकते हैं. आपको दिखाए गए 'सेवा का यूआरएल' सुविधा की मदद से, प्रोसेस पूरी होती जाएगी.
दौड़ का सैंपल नीचे दिखाया गया है:
ऐप्लिकेशन की जांच करें
अब हमने ऐप्लिकेशन को Cloud Run पर डिप्लॉय कर दिया है, इसलिए एपीआई ऐप्लिकेशन को इस तरह ऐक्सेस किया जा सकता है:
- पिछले चरण में दिए गए सेवा यूआरएल को नोट करें. उदाहरण के लिए, मेरे सेटअप पर, यह
https://my-inventory-api-bt2r5243dq-uw.a.run.app
के तौर पर दिखता है. चलिए, इसे<SERVICE_URL>
नाम देते हैं. - ब्राउज़र खोलें और एपीआई एंडपॉइंट के लिए, नीचे दिए गए तीन यूआरएल ऐक्सेस करें:
<SERVICE_URL>/inventory
<SERVICE_URL>/inventory/I-1
<SERVICE_URL>/inventory/I-100
यह एपीआई अनुरोध और जवाब के सैंपल के साथ, पिछले सेक्शन में दिए गए निर्देशों के मुताबिक होनी चाहिए.
Cloud Run से सेवा की जानकारी पाना
हमने अपनी एपीआई सेवा को Cloud Run पर डिप्लॉय किया. यह बिना सर्वर वाला कंप्यूट एनवायरमेंट है. हम किसी भी समय Google Cloud कंसोल के ज़रिए, Cloud Run सेवा पर जा सकते हैं.
मुख्य मेन्यू से Cloud Run पर जाएं. इससे उन सेवाओं की सूची दिखाई देगी जो आप Cloud Run में चला रही हैं. आपको वह सेवा दिखेगी जिसे आपने अभी-अभी डिप्लॉय किया है. आपने जो नाम चुना है उसके आधार पर, आपको कुछ ऐसा दिखना चाहिए:
जानकारी देखने के लिए, सेवा के नाम पर क्लिक करें. सैंपल की जानकारी नीचे दी गई है:
ध्यान दें कि यूआरएल, सेवा के उस यूआरएल के अलावा और कुछ नहीं है जिसे ब्राउज़र में पंच किया जा सकता है और उस Inventory API को ऐक्सेस किया जा सकता है जिसे हमने अभी-अभी डिप्लॉय किया है. मेट्रिक और अन्य जानकारी देखें.
चलिए, अब Google Cloud Operations Suite के साथ शुरुआत करते हैं.
4. सूचना की सूचना पाने के लिए, Pub/Sub विषय बनाएं
Pub/Sub विषय बनाने के लिए, Google Cloud Console में यह तरीका अपनाएं:
- खोज बॉक्स में Pub/Sub खोजें और Pub/Sub पर जाएं.
- अगर आप पहले से विषय टैब पर नहीं हैं, तो उस पर क्लिक करें.
- विषय बनाएं बटन पर क्लिक करें.
- अपने विषय का नाम डालें.
- बनाएं बटन पर क्लिक करें.
- 'कॉपी करें' आइकॉन बटन का इस्तेमाल करके, विषय का नाम कॉपी करें. आपको अगले सेक्शन के लिए इसकी ज़रूरत होगी.
5. अपटाइम चेक बनाएं
Google Cloud Run ऐप्लिकेशन के लिए, अपटाइम चेक बनाने के लिए:
- Google Cloud Platform Console पर जाएं.
- निगरानी टैब पर क्लिक करें.
- अपटाइम चेक टैब पर क्लिक करें.
- पेज के सबसे ऊपरी हिस्से के पास, अपटाइम चेक बनाएं बटन पर क्लिक करें.
- इन वैल्यू का इस्तेमाल करें:
- प्रोटोकॉल : एचटीटीपीएस
- संसाधन का टाइप : यूआरएल
- होस्टनेम : https के बिना Cloud Run Service के यूआरएल का हिस्सा डालें. नीचे स्क्रीन में इसका एक सैंपल दिया गया है. अगर आपको नहीं पता कि सेवा का यूआरएल क्या है, तो Google Cloud के मुख्य कंसोल से Cloud Run पर जाएं. इसके बाद, सेवा का यूआरएल पाने के लिए, Cloud Run सेवा की जानकारी पर जाएं, जैसा कि पहले बताया गया है.
- पाथ : सेहत के लिए
- फ़्रीक्वेंसी देखें: 1 मिनट
- जारी रखें पर क्लिक करें
- कॉन्टेंट मैचिंग की सुविधा चालू है को चालू करें
- "ऑल इज़ वेल" डालें जवाब के तौर पर दिए गए कॉन्टेंट में; यह स्ट्रिंग पूरे जवाब भेजते समय ऐप्लिकेशन में पहले से मौजूद होती है.
- Keep
- स्वीकार किए जाने वाले एचटीटीपी रिस्पॉन्स कोड को रिस्पॉन्स कोड क्लास पर सेट रखें और सिर्फ़ 2xx को रिस्पॉन्स कोड क्लास के तौर पर सेट रखें. इस तरह से, स्ट्रिंग के लिए सिर्फ़ 2xx वाले रिस्पॉन्स कोड का आकलन किया जाएगा. अन्य सभी चीज़ों को अपने-आप फ़ेल हो गई जांच के तौर पर गिना जाएगा.
- जारी रखें पर क्लिक करें
- सूचना चैनल के तौर पर Cloud Pub/Sub विषय चुनें और ठीक है पर क्लिक करें
- जारी रखें पर क्लिक करें
- ऐसा टाइटल जोड़ें जिसे पहचाना जा सके
- जांच करें बटन पर क्लिक करें
तैयार होने पर, बनाएं बटन की समीक्षा करें और उस पर क्लिक करें
आपकी अपटाइम जांच बना दी जाएगी और आपके Cloud Run ऐप्लिकेशन को मॉनिटर करना शुरू कर दिया जाएगा. अपटाइम चेक टैब में, अपटाइम चेक की स्थिति देखी जा सकती है.
6. बधाई हो
बधाई हो, आपने Pub/Sub को सूचनाएं भेजने के लिए, अपने अपटाइम चेक को कॉन्फ़िगर कर लिया है!