Cloud Shell & के साथ डेवलप करना क्लाउड कोड

1. खास जानकारी

Cloud Shell, ऑनलाइन डेवलपमेंट और ऑपरेशंस एनवायरमेंट है. इसे ब्राउज़र की मदद से कहीं भी ऐक्सेस किया जा सकता है. इसकी मदद से, अपने संसाधनों को मैनेज किया जा सकता है. इसमें ऑनलाइन टर्मिनल पहले से लोड होता है. इसमें gcloud कमांड-लाइन टूल, kubectl वगैरह जैसे टूल होते हैं. ऑनलाइन Cloud Shell Editor का इस्तेमाल करके, क्लाउड-आधारित ऐप्लिकेशन डेवलप, बिल्ड, डीबग, और डिप्लॉय किए जा सकते हैं

इस लैब में, Cloud Shell और Cloud Shell Editor का इस्तेमाल किया जाएगा. साथ ही, Cloud Code का इस्तेमाल करके कंटेनर पर आधारित ऐप्लिकेशन बनाए, डिप्लॉय किए, और उनकी टेस्टिंग की जाएगी. इसके लिए, लोकल एम्युलेटर और असली सेवाओं का इस्तेमाल किया जाएगा.

आपको क्या-क्या सीखने को मिलेगा

  • Cloud Shell की मुख्य सुविधाओं के बारे में जानें और उनका इस्तेमाल करें
  • Cloud Shell के इस्तेमाल के अलग-अलग पैटर्न के साथ प्रैक्टिस करना
  • बेहतर तरीके से इस्तेमाल करने के लिए, Cloud Shell एनवायरमेंट को अपनी पसंद के मुताबिक बनाना
  • Cloud Code के विकल्पों और सुविधाओं के बारे में जानें
  • Kubernetes ऐप्लिकेशन के लिए Cloud Code के बारे में जानकारी
  • Minikube जैसे लोकल एमुलेटर का इस्तेमाल करें

ज़रूरी शर्तें

  • आपके पास GCP प्रोजेक्ट के लिए, एडिटर की अनुमतियां, GCP खाता, और Cloud Shell का ऐक्सेस होना चाहिए
  • वैकल्पिक हिस्सों के लिए, आपको टर्मिनल एम्युलेटर और Google Cloud SDK टूल इंस्टॉल करना होगा.

2. सेटअप और ज़रूरी शर्तें

अपनी स्पीड से एनवायरमेंट सेट अप करना

  1. Google Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से कोई Gmail या Google Workspace खाता नहीं है, तो आपको एक खाता बनाना होगा.

b35bf95b8bf3d5d8.pnga99b7ace416376c4.pngbd84a6d3004737c5.png

  • प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों के लिए डिसप्ले नेम होता है. यह एक वर्ण स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करते हैं. इसे कभी भी अपडेट किया जा सकता है.
  • प्रोजेक्ट आईडी, सभी Google Cloud प्रोजेक्ट के लिए यूनीक होता है. साथ ही, इसे बदला नहीं जा सकता. Cloud Console, यूनीक स्ट्रिंग को अपने-आप जनरेट करता है. आम तौर पर, आपको इससे कोई फ़र्क़ नहीं पड़ता कि यह क्या है. ज़्यादातर कोडलैब में, आपको प्रोजेक्ट आईडी का रेफ़रंस देना होगा. आम तौर पर, इसे PROJECT_ID के तौर पर पहचाना जाता है. अगर आपको जनरेट किया गया आईडी पसंद नहीं है, तो कोई दूसरा रैंडम आईडी जनरेट किया जा सकता है. इसके अलावा, आपके पास अपना नाम आज़माने का विकल्प भी है. इससे आपको पता चलेगा कि वह नाम उपलब्ध है या नहीं. इस चरण के बाद, इसे बदला नहीं जा सकता. यह प्रोजेक्ट की अवधि तक रहेगा.
  • आपकी जानकारी के लिए बता दें कि एक तीसरी वैल्यू भी होती है, जिसे प्रोजेक्ट नंबर कहते हैं. इसका इस्तेमाल कुछ एपीआई करते हैं. इन तीनों वैल्यू के बारे में ज़्यादा जानने के लिए, दस्तावेज़ देखें.
  1. इसके बाद, आपको Cloud Console में बिलिंग की सुविधा चालू करनी होगी, ताकि Cloud संसाधनों/एपीआई का इस्तेमाल किया जा सके. इस कोडलैब को पूरा करने में ज़्यादा खर्च नहीं आएगा. इस ट्यूटोरियल के बाद बिलिंग से बचने के लिए, बनाए गए संसाधनों को बंद किया जा सकता है. इसके लिए, बनाए गए संसाधनों को मिटाएं या पूरे प्रोजेक्ट को मिटाएं. Google Cloud के नए उपयोगकर्ताओं को, मुफ़्त में आज़माने के लिए 300 डॉलर का क्रेडिट मिलता है.

3. Cloud Shell टर्मिनल का इस्तेमाल करना

इस सेक्शन में, आपको Cloud Shell Terminal के बारे में जानकारी मिलेगी. साथ ही, यूज़र इंटरफ़ेस (यूआई) को नेविगेट करने, सुविधाओं का इस्तेमाल करने, और कॉन्फ़िगरेशन के विकल्पों के बारे में जानने का तरीका बताया जाएगा. इसके अलावा, आपको इसे इस्तेमाल करने के अलग-अलग तरीकों के बारे में भी बताया जाएगा, ताकि आप अपनी प्रॉडक्टिविटी को बेहतर बना सकें.

Cloud Shell में दो मुख्य टूल होते हैं: Cloud Shell टर्मिनल और Cloud Shell एडिटर. इस लैब में, Cloud Shell टर्मिनल और Cloud Shell शब्दों का इस्तेमाल एक-दूसरे की जगह किया जाएगा. हालांकि, एडिटर को हमेशा Cloud Shell Editor कहा जाएगा, ताकि टर्मिनल एम्युलेटर और आईडीई के बीच अंतर किया जा सके.

Cloud Shell, क्लाउड पर आधारित एक ऐसा शेल है जो पूरी तरह से काम करता है. इसे Google Compute Engine के Debian पर आधारित Linux मशीन पर बनाया गया है. यह मशीन कुछ समय के लिए उपलब्ध होती है. हालांकि, Cloud Shell हमेशा आपके इस्तेमाल के लिए उपलब्ध रहता है. इसमें Google Cloud SDK पहले से इंस्टॉल होता है. साथ ही, इसमें कई काम के टूल भी होते हैं. जैसे, git, kubectl, kubectx, curl, python3, tmux...

Google Cloud, आपकी $HOME डायरेक्ट्री को Cloud Storage में सेव करता है. साथ ही, Cloud Shell मशीन के हर बार शुरू होने पर, यह अपने-आप माउंट हो जाती है. इसलिए, Cloud Shell मशीन बंद होने पर भी, आपको इसमें मौजूद जानकारी नहीं खोनी पड़ेगी. इसका मतलब है कि Cloud Shell को फिर से चालू करने पर, आपकी $HOME डायरेक्ट्री और उसमें किए गए सभी बदलावों को इस्तेमाल किया जा सकेगा.

Cloud Shell लॉन्च करना

  1. console.cloud.google.com पर जाएं. अगर आपने GCP Console में पहले से लॉग इन नहीं किया है, तो अपने Google क्रेडेंशियल डालें. आपको Google Cloud Platform का कंसोल मुख्य यूज़र इंटरफ़ेस (यूआई) दिखेगा.
  2. Cloud Console मेन्यू बार सिलेक्टर में, वह GCP प्रोजेक्ट आईडी चुनें जिस पर आपको काम करना है:

a78258af94ed9ec3.png

  1. मेन्यू बार की दाईं ओर, अपने खाते के अवतार के बगल में Cloud Shell को चालू करने का बटन ढूंढें:

5b4246f45b173ff4.png

  1. Cloud Shell आइकॉन पर क्लिक करें. इससे Cloud Shell टर्मिनल खुल जाएगा. इसमें GCP Console के यूज़र इंटरफ़ेस (यूआई) के ठीक नीचे एक नया पैनल दिखेगा: यूज़र इंटरफ़ेस (यूआई):

8495f27a3ed0f05.png

इस पैनल में, Cloud Shell टर्मिनल होता है.

  1. Cloud Shell टर्मिनल पर जाएं. ध्यान दें कि आपने GCP Console से सही GCP प्रोजेक्ट आईडी चुना है. इसलिए, Cloud Shell को इसके बारे में पता है. इसलिए, आपको इसे फिर से तय करने की ज़रूरत नहीं है:
echo $GOOGLE_CLOUD_PROJECT

इससे आपका GCP प्रोजेक्ट आईडी दिखेगा. यह Cloud Shell प्रॉम्प्ट में भी दिखता है.

टूल के बीच स्विच करना

Cloud Shell में आपको कई टूल और कॉन्फ़िगरेशन के विकल्प मिलते हैं. इन्हें Cloud Shell मेन्यू में उपलब्ध विकल्पों के ज़रिए देखें:

595834af08265e5c.png

  1. बार में मौजूद 67bd0e39332a8438.png बटन पर क्लिक करें. इससे Cloud Shell टर्मिनल बड़ा हो जाएगा और आपके ब्राउज़र के सभी टैब पर दिखने लगेगा:

1197e3e9a36bc7aa.png

  1. Cloud Shell, ब्राउज़र टैब की पूरी जगह पर दिखता है:

ecb227a1d39b8021.png

  1. इस पर फिर से क्लिक करें. ब्राउज़र टैब की जगह, Cloud Console और Cloud Shell के बीच फिर से शेयर की जाएगी.

नए टैब खोलना

Cloud Shell टर्मिनल में, अपनी ज़रूरत के हिसाब से जितने चाहें उतने टैब खोले जा सकते हैं.

  1. नीचे दिए गए बटन पर क्लिक करें और एक नया टैब खोलें.

e5757f88b64c7f5.png

  1. अब टैब के नाम के बगल में मौजूद x पर क्लिक करके या उससे जुड़े शेल में exit टाइप करके, नया टैब बंद करें:

8828238e04a14a20.png

नई विंडो खोली जा रही है

Cloud Shell को नई ब्राउज़र विंडो में खोलने से, Cloud Console को एक विंडो में और Cloud Shell को दूसरी विंडो में इस्तेमाल किया जा सकता है.

  1. नीचे दिए गए बटन पर क्लिक करें और देखें कि Cloud Shell, ब्राउज़र के नए टैब में कैसे खुलता है:

bd407e51ae78d9fe.png

  1. ध्यान दें कि Cloud Shell में अब टूलबार के वही विकल्प मिलते हैं, लेकिन उनका लुक थोड़ा अलग है:

4bce4507ce34a695.png

  1. अगले सेक्शन में दिए गए निर्देशों का पालन करते समय, इसी नए ब्राउज़र टैब में रहें.

Tmux की मदद से सेशन ट्रांसफ़र करना

Cloud Shell में tmux पहले से मौजूद होता है. Tmux, GNU Screen की तरह ही एक लोकप्रिय टर्मिनल मल्टीप्लेक्स है. tmux के साथ इंटिग्रेट होने की वजह से, Cloud Shell आपके सेशन को सेव कर सकता है. इससे कोई फ़र्क़ नहीं पड़ता कि आप कहां हैं.

यहां दिए गए चरणों में, इस कॉन्सेप्ट के साथ प्रैक्टिस करें, ताकि आपको इस सुविधा के बारे में बेहतर तरीके से समझ आ सके.

Cloud Shell टर्मिनल को इधर-उधर ले जाना

  1. आपने अभी जो Cloud Shell टैब खोला है उसमें यह कमांड टाइप करें top:

bdd80a3fdcc6c7db.png

टॉप कमांड से, Cloud Shell टर्मिनल में चल रही प्रोसेस को रीयल टाइम में देखा जा सकता है. इसका इस्तेमाल, tmux की ओर से उपलब्ध कराए गए Cloud Shell में सेशन के बने रहने की स्थिति को विज़ुअलाइज़ करने के लिए किया जाएगा.

  1. अपने ब्राउज़र के पहले टैब पर वापस जाएं. यह वह टैब है जिसमें Cloud Console खुला है.
  2. ध्यान दें कि आपने Cloud Shell को नई विंडो में खोलने का फ़ैसला लिया था. इसलिए, आपको "Your session was transferred to another browser tab. You can disable this from the "Tmux Settings" option in the Cloud Shell settings menu." मैसेज दिखेगा
  3. 'फिर से कनेक्ट करें' बटन पर क्लिक करें:

bdc5d5773296bcfe.png

इसके बाद, आपको उस शेल का ऐक्सेस मिल जाएगा जो दूसरे टैब में चल रहा था. साथ ही, टॉप यहां उसी तरह से चलता रहेगा जैसा आपने इसे छोड़ा था.

  1. अपने ब्राउज़र में दूसरे टैब पर जाएं. इस टैब में, आपने Cloud Shell को नई विंडो में खोला था.
  2. फिर से कनेक्ट करें पर क्लिक करें. आपको टॉप प्रोसेस उसी तरह से वापस मिल जाएगी जिस तरह से वह विंडो बंद करने से पहले चल रही थी.

Tmux की मदद से विंडो स्प्लिट करना

Tmux, इससे कहीं ज़्यादा काम का है. इस लैब में tmux के बारे में नहीं बताया गया है. इसके बारे में ज़्यादा जानने के लिए, tmux का इस्तेमाल शुरू करने के बारे में आधिकारिक जानकारी देखें.

हालांकि, tmux की मदद से Cloud Shell में कुछ ऐसी अतिरिक्त सुविधाएं मिलती हैं जो लोकल टर्मिनल इम्यूलेटर में उपलब्ध होती हैं. इसे दिखाने के लिए, टर्मिनल को अगल-बगल में बांटा जाएगा.

  1. Cloud Shell में, Ctrl + b दबाएं. इसके बाद, % दबाएं
  2. देखें कि tmux, ओरिजनल पैन के दाईं ओर नया पैन कैसे बनाता है:

717b047d71c8eeef.png

  1. दूसरे पैन पर क्लिक करें और exit टाइप करें.

वेब प्रीव्यू का इस्तेमाल करना

Cloud Shell, क्लाउड में चल रही Cloud Shell मशीन से, आपके कंप्यूटर में चल रहे लोकल ब्राउज़र तक पोर्ट फ़ॉरवर्ड करने की सुविधा भी अपने-आप सेट अप कर सकता है.

  1. Cloud Shell में यह टाइप करें:
python3 -m http.server 8080
  1. सबसे ऊपर दाएं कोने में मौजूद, वेब प्रीव्यू विकल्प पर जाएं और पोर्ट 8080 पर प्रीव्यू करें को चुनें:

a8363cafca79345.png

एक नया टैब खुलेगा. इसमें वह डिफ़ॉल्ट पेज दिखेगा जो उस पोर्ट पर दिखाया जाता है.

ध्यान दें कि आपके पास पोर्ट बदलने और Cloud Shell में आपके ऐप्लिकेशन के लिए उपलब्ध कराए जा रहे किसी भी पोर्ट की झलक देखने का विकल्प होता है. ऐसा सिर्फ़ पोर्ट 8080 के लिए नहीं किया जा सकता.

Cloud Shell के अन्य विकल्पों को ऐक्सेस करना

Cloud Shell में अतिरिक्त सेटिंग और विकल्प उपलब्ध हैं.

  1. विकल्पों को ऐक्सेस करने के लिए, Cloud Shell मेन्यू में मौजूद तीन बिंदुओं पर क्लिक करें:

a5c515c9df9284be.png

यहां सबसे काम के विकल्प ये हैं: Cloud Shell में फ़ाइलें अपलोड या डाउनलोड करने की सुविधा और अगर आपको कोई समस्या आती है, तो Cloud Shell मशीन को रीस्टार्ट करने की सुविधा.

4. Cloud Shell Editor का इस्तेमाल करना

Cloud Shell की सबसे अहम सुविधाओं में से एक Cloud Shell Editor है. यह एक फ़ुल फ़्लेज्ड आईडीई है. यह ओपन सोर्स प्रोजेक्ट Eclipse Theia पर आधारित है. इसमें Google के साथ-साथ अन्य लोगों का भी योगदान है. यह VSCode की तरह ही दिखता है और इसका इस्तेमाल करना भी वैसा ही है. ऐसा इसलिए है, क्योंकि दोनों में कई ओपन सोर्स कॉम्पोनेंट का इस्तेमाल किया जाता है. जैसे, Monaco एडिटर, एक्सटेंशन मॉडल, लैंग्वेज सर्वर प्रोटोकॉल, और डीबग अडैप्टर प्रोटोकॉल.

Theia/Cloud Shell Editor एक जटिल टूल है. इसलिए, इस लैब में Cloud Shell Editor की सभी सुविधाओं के बारे में नहीं बताया जा सकता. इस सेक्शन में, आपको Google Cloud के इस वर्शन में उपलब्ध कुछ मुख्य सिद्धांतों और खास सुविधाओं के बारे में जानकारी मिलेगी.

Cloud Shell एडिटर को ऐक्सेस करना

Cloud Shell Editor को तीन अलग-अलग तरीकों से ऐक्सेस किया जा सकता है:

  • कमांड लाइन से ऐक्सेस करना
  • Cloud Shell मेन्यू से ऐक्सेस करना
  • अपने ब्राउज़र में किसी यूआरएल पर जाना

इन तरीकों को आज़माने के लिए, यह तरीका अपनाएं

  1. कमांड लाइन से .bashrc फ़ाइल खोलने के लिए, यह कमांड डालें:
cloudshell edit $HOME/.bashrc
  1. मेन्यू से Cloud Shell खोलें. इसके लिए, Open Editor 6039dbc755bfca9f.png बटन पर क्लिक करें: f493b9a98771b0af.png इससे Cloud Shell Editor खुल जाता है. हालांकि, Cloud Shell Terminal खुला रहता है. अगर आपको सिर्फ़ Cloud Shell Editor के लिए सभी टैब का इस्तेमाल करना है, तो टर्मिनल को बंद करने के लिए, 'बदलाव करें' बटन के दाईं ओर मौजूद बटन पर क्लिक करें. इन दो बटन (एडिटर खोलें/बंद करें और टर्मिनल खोलें/बंद करें) से यह तय होगा कि ब्राउज़र टैब में कौनसे टूल मौजूद हैं. दोनों पर क्लिक करने की प्रैक्टिस करें, ताकि आपको इसकी आदत पड़ जाए.
  2. ब्राउज़र में यूआरएल बार से Cloud Shell Editor को चालू करें. इसके लिए,ide.cloud.google.com टाइप करें.

Cloud Shell Editor से कमांड लाइन का इस्तेमाल करना

हालांकि, आपके पास एक ही ब्राउज़र टैब में Cloud Shell टर्मिनल और Cloud Shell एडिटर, दोनों का इस्तेमाल करने का विकल्प होता है. हालांकि, Cloud Shell टर्मिनल को बंद करके, सिर्फ़ Cloud Shell एडिटर का इस्तेमाल किया जा सकता है. साथ ही, Cloud Shell एडिटर में उपलब्ध टर्मिनल का इस्तेमाल अपनी सभी ज़रूरतों के लिए किया जा सकता है. अगर आपको IDE का इस्तेमाल करने की आदत है और आपको VSCode के अलग-अलग शॉर्टकट और पैन के बारे में पता है, तो यह आपके लिए फ़ायदेमंद हो सकता है.

ऊपर बताए गए किसी भी तरीके का इस्तेमाल करके, Cloud Shell Editor खोलें. इसके बाद, Editor मेन्यू पर जाएं और Terminal > New Terminal चुनें या अपने कीबोर्ड पर `Ctrl + `` दबाएं. Cloud Shell Editor के निचले हिस्से में एक नया टर्मिनल पैनल खुलेगा. इसका इस्तेमाल, शेल से जुड़ी सभी ज़रूरतों के लिए किया जा सकता है:

8b2c36f71e851c40.png

इससे आपको अलग-अलग टर्मिनल पैन को मैनेज करने का विकल्प भी मिलेगा. इसके लिए, आपको tmux पैन मैनेजमेंट का इस्तेमाल करने की ज़रूरत नहीं होगी. ऐसा Cloud Shell Terminal के मामले में होता था.

Cloud Shell की सेटिंग को पसंद के मुताबिक बनाना

Cloud Shell में, अपनी पसंद के मुताबिक कई बदलाव किए जा सकते हैं. जैसे, Cloud Shell का लुक और फ़ील, बुनियादी व्यवहार, Cloud Shell टर्मिनल के स्टार्टअप कॉन्फ़िगरेशन, और ऑपरेशन के बारे में ज़्यादा जानकारी. यहां दिए गए सेक्शन में, आपको अलग-अलग विकल्पों के बारे में ज़्यादा जानकारी मिलेगी.

Cloud Shell टर्मिनल मेन्यू पर जाएं और गियर आइकॉन पर क्लिक करें. आपको कॉन्फ़िगरेशन के कई विकल्प दिखेंगे:

a473c985a434070b.png

इनमें से कुछ की समीक्षा करें:

  • कलर थीम: आपके पास लाइट, डार्क या पसंद के हिसाब से रंगों का सेट इस्तेमाल करने का विकल्प होता है. जैसे, फ़ॉन्ट का रंग और बैकग्राउंड का रंग
  • टेक्स्ट का साइज़: चुनने के लिए पांच अलग-अलग फ़ॉन्ट साइज़
  • फ़ॉन्ट: Courier new या Monospace
  • सेटिंग कॉपी करें: यहां कॉपी करने के लिए कीबोर्ड शॉर्टकट बदला जा सकता है, ताकि यह Linux के ज़्यादातर लोकप्रिय टर्मिनल इम्यूलेटर में इस्तेमाल किए जाने वाले शॉर्टकट जैसा हो.
  • कीबोर्ड: Meta बटन को Alt पर मैप करना (डिफ़ॉल्ट रूप से, Meta ESC पर मैप होता है) और कुछ ओएस में Alt Gr बटन को मैप करना.

शेल एनवायरमेंट को कॉन्फ़िगर करना

Debian पर आधारित Linux मशीन में शेल चलाने वाले टर्मिनल एम्युलेटर के तौर पर, शेल एनवायरमेंट को उसी तरह से पसंद के मुताबिक बनाया जा सकता है जिस तरह से Linux में बनाया जाता है. इसलिए, $HOME में मौजूद कोई भी कॉन्फ़िगरेशन फ़ाइल (जैसे कि .bashrc)) हर बार नई लॉगिन शेल प्रोसेस बनाने पर सोर्स की जाएगी.

Cloud Shell में, यह तय करने की सुविधा भी मिलती है कि Cloud Shell इंस्टेंस शुरू होने पर, आपको कौनसी कार्रवाइयां करनी हैं. इसके लिए, .customize_environment नाम की एक खास कॉन्फ़िगरेशन फ़ाइल का इस्तेमाल किया जाता है. इस बारे में ज़्यादा जानने के लिए, एनवायरमेंट को पसंद के मुताबिक बनाना दस्तावेज़ पढ़ें.

Cloud Shell टर्मिनल में कुछ कॉन्फ़िगरेशन जोड़ने का तरीका जानें. Cloud Shell टर्मिनल पर जाएं और यहां दिए गए सैंपल कोड रिपो को क्लोन करें:

git clone https://gitlab.com/javiercanadillas/cloud-code-getting-started.git

इस रिपो में, दो मुख्य इवेंट के सैंपल शामिल हैं. इन इवेंट के लिए, आपको Cloud Shell को कॉन्फ़िगर करना पड़ सकता है:

  • Cloud Shell इंस्टेंस के शुरू होने पर: $HOME/.customize_environment फ़ाइल को पढ़ा जाएगा. इस प्रोसेस का एक्ज़ीक्यूशन लॉग, /var/log/customize_environment में देखा जा सकता है. साथ ही, प्रोसेस के पूरा होने पर /google/devshell/customize_environment_done बन जाएगा.
  • जब भी कोई नई शेल प्रोसेस शुरू की जाती है (नई विंडो, नया टैब...), तब बैश शेल की कॉन्फ़िगरेशन फ़ाइलों को पढ़ा जाएगा.

इन दोनों के साथ प्रैक्टिस करने के लिए, यह तरीका अपनाएं:

  1. Repo में दिए गए कस्टमर को लॉन्च करने के लिए, यह कमांड चलाएं:
cd cloud-code-getting-started
source set_env_cust.sh

इससे, पसंद के मुताबिक बनाने के लिए पहले बताए गए दोनों विकल्प सेट अप हो जाते हैं और चालू हो जाते हैं.

  1. नए शेल प्रॉम्प्ट पर ध्यान दें. .bash_profile फ़ाइल में सोर्स की गई बैश स्क्रिप्ट ने इस नए प्रॉम्प्ट को कॉन्फ़िगर किया है. यह प्रॉम्प्ट, डिफ़ॉल्ट प्रॉम्प्ट से छोटा है. इसमें Git की बुनियादी जानकारी शामिल है. जैसे, चेक आउट की गई ब्रांच या git status.
  2. अब cloudshell edit कमांड के लिए एक नया code एलियास उपलब्ध है, जो छोटा है. इसका इस्तेमाल करके, .bash_profile फ़ाइल का कॉन्टेंट देखा जा सकता है:
code $HOME/.bash_profile
  1. .customize_environment फ़ाइल का कॉन्टेंट देखने के लिए, अभी इंस्टॉल की गई bat कमांड का इस्तेमाल करें:
bat $HOME/.customize_environment

bat, लोकप्रिय Unix टूल cat का बेहतर वर्शन है. bat के आउटपुट में, apt install कमांड का इस्तेमाल करके hey को फिर से इंस्टॉल करने का तरीका दिखाया गया है. , लोड टेस्टिंग टूल है. हर बार जब कोई नई Cloud Shell मशीन शुरू की जाती है, तब इस टूल को फिर से इंस्टॉल किया जाता है.

  1. यह जांच करें कि सब कुछ ठीक से काम कर रहा है या नहीं. इसके लिए, Cloud Shell मेन्यू (सबसे ऊपर दाएं कोने में मौजूद तीन बिंदु) पर क्लिक करें और फिर से शुरू करें को चुनें.

इससे आपको Cloud Shell के टाइम आउट और इंस्टेंस को फिर से बनाने की प्रोसेस को सिम्युलेट करने की सुविधा मिलेगी. इससे यह पक्का किया जा सकेगा कि सब कुछ सही तरीके से कॉन्फ़िगर किया गया है.

Cloud Shell कंटेनर इमेज को पसंद के मुताबिक बनाना

इस विकल्प की मदद से, Docker इमेज बनाई जा सकती है. यह इमेज, कस्टम कॉन्फ़िगरेशन और अतिरिक्त पैकेज के साथ, कस्टम Cloud Shell एनवायरमेंट के तौर पर काम करती है. जनरेट की गई इमेज, पूरी तरह से कुछ समय के लिए उपलब्ध रहने वाले Cloud Shell इंस्टेंस को स्पिन अप करेगी. इसलिए, Cloud Shell वीएम और उससे जुड़ी $HOME डायरेक्ट्री, दोनों ही सेव नहीं होंगी. हालांकि, इमेज बनाने की यह सुविधा उन मामलों में काम आएगी जहां आपको तीसरे पक्षों को फ़ंक्शन के हिसाब से Cloud Shell इंस्टेंस देने होते हैं, ताकि वे किसी टास्क को सबसे बेहतर तरीके से पूरा कर सकें.

पिछले सेक्शन में बताए गए तरीके से एनवायरमेंट को पसंद के मुताबिक बनाने के बजाय, आपको अपने बदलावों को नई इमेज में शामिल करना होगा. इस इमेज का इस्तेमाल, Cloud Shell को स्पिन अप करने के लिए किया जाता है. इसके कई फ़ायदे हैं. जैसे, आपका कस्टम Cloud Shell तेज़ी से शुरू होगा.

नई Cloud Shell इमेज बनाना

  1. Cloud Shell कंटेनर इमेज बनाने के लिए, Cloud Shell टर्मिनल में यह टाइप करें:
cloudshell env create-custom-image custom-cloud-shell
cd custom-cloud-shell

इससे आपके Cloud Shell में एक नई डायरेक्ट्री बनती है. साथ ही, आपके कोड को होस्ट करने के लिए, उसी नाम से एक नई Cloud Source Repositories रेपो बनती है. यह $HOME/custom-cloud-shell/ directory में मौजूद सैंपल Dockerfile को भी क्लोन करता है.

  1. Dockerfile की आखिरी लाइन में, RUN apt install -y hey लाइन जोड़ें:
echo "RUN apt install -y hey" >> $HOME/custom-cloud-shell/Dockerfile

इससे, .customize_environment में मौजूद उसी कस्टम सेटिंग को सेट अप किया जाता है. हालांकि, इसे कंटेनर में शामिल किया जाता है.

  1. इमेज को स्थानीय तौर पर बनाएं:
cloudshell env build-local
  1. नई इमेज की जांच करने के लिए, यह कमांड चलाएं:
cloudshell env run

अब आपको इमेज के अंदर एक शेल दिखेगा.

  1. hey कमांड को चलाकर देखें कि यह इंस्टॉल है या नहीं:
hey
  1. कंटेनर से बाहर निकलने के लिए, exit टाइप करें:
exit
  1. बदलावों को Cloud Source Repositories और इमेज को Container Registry में पुश करें:
git commit -a -m "Initial commit"
git push origin master
cloudshell env push

नई इमेज की जांच करना

  1. इमेज को सार्वजनिक तौर पर उपलब्ध कराएं, ताकि उसका इस्तेमाल किया जा सके:
gsutil iam ch allUsers:objectViewer $(gsutil ls)
  1. एक ऐसा यूआरएल जनरेट करें जिसका इस्तेमाल, पब्लिश किए गए Cloud Shell कस्टम इंस्टेंस की जांच करने के लिए किया जा सके:
echo "https://ssh.cloud.google.com/cloudshell/editor?cloudshell_image=gcr.io/$GOOGLE_CLOUD_PROJECT/custom-cloud-shell"
  1. आउटपुट यूआरएल को कॉपी करें और उसे ब्राउज़र के नए टैब में चिपकाएं. इससे Cloud Shell का कस्टम इंस्टेंस खुल जाएगा. ध्यान दें कि इंस्टेंस को ऐक्सेस करने पर, ऐसे बैनर दिखते हैं जिनसे पता चलता है कि कुछ समय के लिए प्रोफ़ाइल बनाने वाला मोड चालू है:

bc091a4c33649aa9.png

  1. 'ठीक है' कमांड का इस्तेमाल करके, इमेज की फिर से जांच करें
hey
  1. इसके बाद, exit कुछ समय के लिए उपलब्ध Cloud Shell इंस्टेंस को बंद करें. इसके बाद, उस टैब पर वापस जाएं जहां आपका रेगुलर Cloud Shell खुला था. इसके बाद, फिर से कनेक्ट करें पर क्लिक करें.

एसएसएच की मदद से, Cloud Shell को रिमोटली ऐक्सेस करना

Cloud Shell की सुविधाओं को अपने लोकल कंप्यूटर से भी दूर से ऐक्सेस किया जा सकता है. आम तौर पर, इसमें दो अलग-अलग इस्तेमाल के उदाहरण शामिल होते हैं:

  • अपने लोकल टर्मिनल से Cloud Shell मशीन में एसएसएच करना
  • Cloud Shell के रिमोट $HOME डायरेक्ट्री को लोकल तौर पर माउंट करना.

इसके लिए, आपको Google Cloud SDK को स्थानीय तौर पर इंस्टॉल करना होगा. आपको इसे अपने प्रोजेक्ट आईडी और इस्तेमाल किए जा रहे क्रेडेंशियल के साथ भी कॉन्फ़िगर करना होगा.

अपनी लोकल मशीन में चल रहे टर्मिनल एम्युलेटर में, यह तरीका अपनाएं:

  1. GCP प्रोजेक्ट आईडी सेट अप करें और उस Cloud संगठन से जुड़े क्रेडेंशियल से लॉग इन करें जहां आपके पास Cloud Shell है.
gcloud config set project <your project id>
gcloud auth login
  1. अपनी रिमोट Cloud Shell मशीन से एसएसएच करें:
gcloud cloud-shell ssh --authorize-session

अब आप Cloud Shell में होंगे. हालांकि, इसमें आपके लोकल टर्मिनल एम्युलेटर की सुविधाओं और कॉन्फ़िगरेशन का इस्तेमाल किया जाएगा. अगर आपके पास tmux का इस्तेमाल करने की सुविधा है, तो रिमोट से बेहतर अनुभव पाने के लिए, अन्य इंटिग्रेशन का फ़ायदा लिया जा सकता है.

अपने कंप्यूटर से Cloud Shell की होम डायरेक्ट्री को माउंट करना

रिमोट Cloud Shell इंस्टेंस से एसएसएच करने की सुविधा अच्छी है. हालांकि, इससे भी बेहतर यह है कि आपके पास अपने लोकल आईडीई में, रिमोट Cloud Shell $HOME डायरेक्ट्री का ऐक्सेस हो. इस तरह, एसएसएच ऐक्सेस को पहले दिखाए गए तरीके से, रिमोट कोड में स्थानीय तौर पर बदलाव करने की सुविधा के साथ जोड़ा जा सकता है.

इसके लिए, अपनी लोकल मशीन पर सबसे पहले एक माउंट पॉइंट बनाएं:

mkdir $HOME/cloudshell

यह वह डायरेक्ट्री है जहां आपका Cloud Shell माउंट किया जाएगा. अब इसे माउंट करने के लिए, पक्का करें कि आपका Cloud Shell इंस्टेंस चालू हो. इसके बाद, अपने लोकल टर्मिनल में यह टाइप करें:

$(gcloud cloud-shell get-mount-command $HOME/cloudshell)
cd $HOME/cloudshell

इससे आपको माउंट करने का वह निर्देश मिलेगा जिसे आपको Cloud Shell को स्थानीय तौर पर माउंट करने के लिए देना होगा. साथ ही, इससे Cloud Shell माउंट हो जाएगा. आपको अपनी लोकल मशीन में, Cloud Shell की होम डायरेक्ट्री का कॉन्टेंट दिखेगा.

अब, VSCode जैसे IDE को स्थानीय तौर पर खोला जा सकता है. साथ ही, क्लाउड में मौजूद किसी रिमोट वर्कस्पेस को खोला जा सकता है. साथ ही, Cloud Shell को एसएसएच से ऐक्सेस करके, आईडीई में टर्मिनल पैन खोला जा सकता है. इससे आपके लोकल आईडीई में रिमोट टर्मिनल भी इंटिग्रेट हो जाएगा.

5. Cloud Code का इस्तेमाल करना

Cloud Code, Google का बनाया गया एक प्लगिन है. इसकी मदद से डेवलपर, क्लाउड पर आधारित टूल के साथ ज़्यादा असरदार तरीके से काम कर सकते हैं. यह VSCode और Jetbrains के प्रॉडक्ट जैसे कई IDE और कोड एडिटर में उपलब्ध है. साथ ही, आपकी सुविधा के लिए इसे Cloud Shell Editor में डिफ़ॉल्ट रूप से इंटिग्रेट किया गया है. Cloud Code में डेवलपर के लिए कई सुविधाएं शामिल हैं. अगले चरणों में, आपको इनका इस्तेमाल करने का तरीका बताया जाएगा.

Cloud Shell Editor में Cloud Code को ढूंढना

क्विक ऐक्सेस बटन का इस्तेमाल करना

एडिटर के बाएं पैनल में मौजूद ये चार बटन ढूंढें:

de0b6c69b590d21b.png

इन मेन्यू आइटम की मदद से, Cloud Shell Editor से ही GCP सेवाओं को आसानी से ऐक्सेस और कॉन्फ़िगर किया जा सकता है.

इस लैब में, आपको Kubernetes क्लस्टर पर फ़ोकस करना होगा.

स्टेटस बार का इस्तेमाल करना

Cloud Shell Editor के यूज़र इंटरफ़ेस (यूआई) के ज़रिए, Cloud Shell के दो और हिस्से दिखाए जाते हैं. ये हिस्से काम के हैं. आपको ये दोनों, एडिटर में सबसे नीचे मौजूद बार में दिखेंगे:

f04c703ff45b05a.png

  • <> Cloud Code: इस पर क्लिक करने से, क्विक ऐक्शन मेन्यू दिखेगा. इस ट्यूटोरियल में इसका इस्तेमाल किया जाएगा: 58a3f8940f6263ae.png
  • minikube को कंट्रोल करना: इससे आपको लोकल Kubernetes एम्युलेटर, minikube को कंट्रोल करने की सुविधा मिलेगी. इसके लिए, क्लस्टर को शुरू या बंद करने जैसे बुनियादी ऐक्शन किए जा सकते हैं.

Minikube इंस्टेंस बनाना

बटन पर क्लिक करके, अभी Minikube इंस्टेंस बनाएं.

540da42dd52e1469.png

Cloud Code की मदद से GKE क्लस्टर बनाना

  1. बाईं ओर मौजूद, आइकॉन Cloud Code - Kubernetes Clusters ( 5ffab5cb541da6.png) पर क्लिक करें. आपको बाईं ओर CLOUD CODE - KUBERNETES: CLUSTERS नाम का एक नया पैनल दिखेगा.
  2. CLOUD CODE - KUBERNETES: CLUSTERS के बगल में मौजूद, + बटन पर क्लिक करें. इसके बाद, Google Kubernetes Engine चुनें. ध्यान दें कि आपके पास पहले से बनाए गए Minikube जैसे अन्य विकल्प भी चुनने का विकल्प है:

e7a81607c1bc7c55.png

  1. Create a New GKE Cluster पर क्लिक करें. इस विकल्प से, दाईं ओर एक नया पैनल लोड होगा. यहां डेवलपमेंट क्लस्टर बनाने के लिए, अतिरिक्त जानकारी डाली जा सकती है. पैनल में दिए गए निर्देशों का पालन करें और यह जानकारी डालें:
  • ऑटोपायलट चुनें
  • अपना क्षेत्र (europe-west-1) चुनें
  • अपने क्लस्टर को "dev" नाम दें
  1. क्लस्टर बनाएं बटन पर क्लिक करें. इससे एक नया Autopilot क्लस्टर बन जाएगा.

क्लस्टर बनाने की प्रोसेस में पांच मिनट लग सकते हैं. इसलिए, क्लस्टर बनने के दौरान, Cloud Code के Kubernetes पैनल के बारे में ज़्यादा जानें.

Cloud Code के Kubernetes पैनल को एक्सप्लोर करना

आपने पहले एक Minikube क्लस्टर बनाया था. तैयार हो जाने पर, यह क्लस्टर Cloud Code के Kubernetes पैनल में दिखेगा. इसमें वही नाम दिखेगा जो आपने दिया है, minikube:

b654e618f78de3b3.png

यह क्लस्टर, यूज़र इंटरफ़ेस (यूआई) में ACTIVE के तौर पर दिखेगा. यह सेटिंग, कमांड लाइन में मौजूद मौजूदा Kubernetes कॉन्टेक्स्ट के साथ सिंक होती है. .

Cloud Code के Kubernetes पैनल में यह जानकारी देखी जा सकती है:

  • डिफ़ॉल्ट KubeConfig फ़ाइल: Cloud Code, आपके उपयोगकर्ता के लिए ~/.kube/config फ़ाइल को पढ़ता है. साथ ही, इसका इस्तेमाल वहां कॉन्फ़िगर किए गए Kubernetes क्लस्टर से कनेक्ट करने के लिए करता है, ताकि आप उन्हें आसानी से नेविगेट कर सकें. अगर आपको Kubeconfig फ़ाइल में बदलाव करना है, तो Default Kubeconfig लाइन पर कर्सर घुमाएं. इसके बाद, उसके बगल में मौजूद आउटगोइंग ऐरो वाले स्क्वेयर पर क्लिक करें.
  • आपके रजिस्टर किए गए क्लस्टर के अलग-अलग ऑब्जेक्ट को ब्राउज़ किया जा सकता है: इस मामले में, आपको minikube Minikube क्लस्टर दिखेगा, जिसे आपने पहले बनाया था. इसमें इसके कॉन्टेक्स्ट, नेमस्पेस, और नोड शामिल हैं. आगे बढ़ें और ट्री के कुछ नोड को बड़ा करें. आपने कोई ऐप्लिकेशन डिप्लॉय नहीं किया है. इसलिए, अभी कोई पॉड नहीं होगा.

नया GKE क्लस्टर चालू होने के बाद, यह बाईं ओर मौजूद पैनल में minikube Minikube क्लस्टर के साथ दिखेगा. ध्यान दें कि किसी भी क्लस्टर पर राइट क्लिक करके, उसे "चालू" किया जा सकता है. इसका मतलब है कि आपके पास किसी भी Cloud Code कार्रवाई के लिए क्लस्टर चुनने का विकल्प होता है:

8e4306c3ce707ef8.png

6. बधाई हो!

बधाई हो, आपने कोडलैब पूरा कर लिया है!

आपने क्या-क्या कवर किया है

  • Cloud Shell की मुख्य सुविधाओं के बारे में जानकारी मिली और उनका इस्तेमाल किया
  • Cloud Shell के इस्तेमाल के अलग-अलग पैटर्न के साथ प्रैक्टिस की गई हो
  • आपने Cloud Shell एनवायरमेंट को बेहतर तरीके से इस्तेमाल करने के लिए, उसे अपनी पसंद के मुताबिक बनाया हो
  • Cloud Code के विकल्पों और सुविधाओं के बारे में जानकारी मिली
  • Kubernetes ऐप्लिकेशन के लिए Cloud Code की जानकारी की समीक्षा की गई
  • Minikube जैसे लोकल एमुलेटर का इस्तेमाल करें