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.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

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

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

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

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

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 Console का मुख्य यूज़र इंटरफ़ेस (यूआई) दिखेगा.
  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 की मदद से Windows को स्प्लिट करना

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 है. यह एक फ़ुल फ़्लेज्ड IDE है. यह 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 को फिर से इंस्टॉल करने का तरीका दिखाया गया है. 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 के प्रॉडक्ट जैसे कई आईडीई और कोड एडिटर में उपलब्ध है. साथ ही, यह आपकी सुविधा के लिए 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 Pane के बारे में थोड़ी और जानकारी पाएं.

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 जैसे लोकल एमुलेटर का इस्तेमाल करें