डेवलपमेंट एनवायरमेंट

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

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

58a4cdd3ed7a123a.png

Cloud Workstations क्या है?

Cloud Workstations, Google Cloud पर मैनेज किए जा रहे डेवलपमेंट एनवायरमेंट की सुविधा देता है. इसमें पहले से ही सुरक्षा और पहले से कॉन्फ़िगर किए गए, पसंद के मुताबिक बनाए जा सकने वाले डेवलपमेंट एनवायरमेंट मौजूद होते हैं. ब्राउज़र पर आधारित आईडीई की मदद से, Cloud Workstations को कई लोकल कोड एडिटर (जैसे कि VSCode या IntelliJ IDEA Ultimate और PyCharm Professional जैसे JetBrains IDEs) से या एसएसएच की मदद से ऐक्सेस करें.

Cloud Workstations इन संसाधनों का इस्तेमाल करता है:

  • एडमिन वर्कस्टेशन क्लस्टर बनाते हैं
  • हर वर्कस्टेशन के क्लस्टर में, एडमिन एक या एक से ज़्यादा वर्कस्टेशन कॉन्फ़िगरेशन बनाते हैं. ये कॉन्फ़िगरेशन, वर्कस्टेशन के लिए टेंप्लेट के तौर पर काम करते हैं.
  • डेवलपर ऐसे वर्कस्टेशन बना सकते हैं जो क्लाउड आईडीई, भाषा टूल, लाइब्रेरी वगैरह उपलब्ध कराने वाले डेवलपमेंट एनवायरमेंट के बारे में बताते हैं.

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

Cloud Workstations आपके ऐप्लिकेशन डेवलपमेंट एनवायरमेंट की सुरक्षा को बेहतर बनाकर, सुरक्षा को बेहतर बनाने में मदद करता है. इसमें सुरक्षा से जुड़ी सुविधाएं मौजूद हैं. जैसे, VPC सर्विस कंट्रोल, निजी इन्ग्रेस या इग्रेस डेटा ट्रैफ़िक, फ़ोर्स्ड इमेज अपडेट, और पहचान और ऐक्सेस मैनेजमेंट के ऐक्सेस से जुड़ी नीतियां.

Cloud Code क्या है?

Cloud Code, Kubernetes और Cloud Run ऐप्लिकेशन के पूरे डेवलपमेंट साइकल के लिए, IDE सहायता देता है. इसमें सैंपल टेंप्लेट से नया ऐप्लिकेशन बनाने और उसे पसंद के मुताबिक बनाने से लेकर आपके तैयार ऐप्लिकेशन को चलाने तक की प्रोसेस शामिल है. Cloud Code, इस्तेमाल के लिए तैयार सैंपल, आउट-ऑफ़-द-आउट कॉन्फ़िगरेशन स्निपेट, और डीबग करने के अनुभव को बेहतर बनाने में आपकी मदद करता है. इसलिए, Kubernetes और Cloud Run के साथ डेवलपमेंट करना बहुत आसान है!

यहां Cloud Code की कुछ सुविधाओं के बारे में बताया गया है:

  • ऐप्लिकेशन को लगातार बनाना और चलाना
  • आपके Kubernetes ऐप्लिकेशन पर डीबग करने से जुड़ी सहायता अभी डेवलप की जा रही है
  • स्ट्रीमिंग और देखने की सुविधा लॉग करें

Cloud Code की अन्य सुविधाओं के बारे में ज़्यादा जानें.

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

इस लैब में, आपको GCP में कंटेनर को डेवलप करने के तरीकों के बारे में जानकारी मिलेगी. जैसे:

  • Cloud Workstations की समीक्षा करें
  • वर्कस्टेशन लॉन्च करें
  • क्लाउड कोड की समीक्षा करें
  • Kubernetes पर डीबग करें

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 में बिलिंग चालू करनी होगी. इस कोडलैब का इस्तेमाल करने पर, आपको ज़्यादा पैसे नहीं चुकाने होंगे. इस ट्यूटोरियल के अलावा, संसाधनों को बंद करने के लिए कि आपको बिलिंग न करनी पड़े. इसके लिए, अपने बनाए गए संसाधनों को मिटाएं या पूरा प्रोजेक्ट मिटाएं. Google Cloud के नए उपयोगकर्ता, 300 डॉलर के मुफ़्त ट्रायल वाले प्रोग्राम में हिस्सा ले सकते हैं.

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

Cloud Shell में, अपना प्रोजेक्ट आईडी और अपने प्रोजेक्ट का प्रोजेक्ट नंबर सेट करें. उन्हें PROJECT_ID और PROJECT_ID वैरिएबल के तौर पर सेव करें.

export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID \
    --format='value(projectNumber)')

इस लैब में, आपको GKE (जीकेई) पर कोड डिप्लॉय करना होगा. क्लाउड वर्कस्टेशन का इस्तेमाल, आईडीई के तौर पर भी किया जा सकता है.

नीचे दी गई सेटअप स्क्रिप्ट आपके लिए यह इन्फ़्रास्ट्रक्चर तैयार करती है.

  1. सेटअप स्क्रिप्ट डाउनलोड करें और इसे एक्ज़ीक्यूटेबल बनाएं.
wget https://raw.githubusercontent.com/GoogleCloudPlatform/container-developer-workshop/main/labs/python/setup_with_cw.sh
chmod +x setup_with_cw.sh
  1. setup_with_cw.sh फ़ाइल खोलें और वर्तमान में CHANGEME पर सेट पासवर्ड के मानों में बदलाव करें
  2. इस लैब में इस्तेमाल किया जाने वाला GKE (जीकेई) क्लस्टर बनाने के लिए, सेटअप स्क्रिप्ट चलाएं. इस सेटअप में करीब 20 मिनट लगेंगे.
./setup_with_cw.sh &
  1. Cloud Console में Cloud Workstations खोलें. अगले चरणों पर जाने से पहले, क्लस्टर के READY स्टेटस में होने का इंतज़ार करें.
  2. अगर आपका Cloud Shell सेशन डिसकनेक्ट हो गया है, तो "फिर से कनेक्ट करें" पर क्लिक करें और फिर प्रोजेक्ट आईडी सेट करने के लिए gcloud cli कमांड चलाएं. कमांड चलाने से पहले, नीचे दिए गए सैंपल प्रोजेक्ट आईडी को अपने qwiklabs प्रोजेक्ट आईडी से बदलें.
gcloud config set project qwiklabs-gcp-project-id
  1. Cloud Workstations कॉन्फ़िगरेशन बनाने के लिए, नीचे दी गई स्क्रिप्ट को टर्मिनल में डाउनलोड करें और चलाएं.
wget https://raw.githubusercontent.com/GoogleCloudPlatform/container-developer-workshop/main/labs/python/workstation_config_setup.sh
chmod +x workstation_config_setup.sh
./workstation_config_setup.sh

Cloud Workstations क्लस्टर और कॉन्फ़िगरेशन

Cloud Console में Cloud Workstations खोलें. पुष्टि करें कि क्लस्टर की स्थिति READY है.

305e1a3d63ac7ff6.png

मौजूदा कॉन्फ़िगरेशन के लिए स्टेटस की पुष्टि करें.

2e23c2e9983d1ccf.png

एक नया वर्कस्टेशन बनाएं.

a53adeeac81a78c8.png

नाम को my-workstation में बदलें और मौजूदा कॉन्फ़िगरेशन को चुनें: codeoss-python.

f052cd47701ec774.png

वर्कस्टेशन लॉन्च करें

  1. वर्कस्टेशन शुरू और लॉन्च करें. Workstation शुरू होने में कुछ समय लगेगा.

682f8a307032cba3.png

  1. पता बार में मौजूद आइकॉन पर क्लिक करके, तीसरे पक्ष की कुकी को अनुमति दें. 1b8923e2943f9bc4.png

fcf9405b6957b7d7.png

  1. "साइट काम नहीं कर रही है?" पर क्लिक करें.

36a84c0e2e3b85b.png

  1. "कुकी की अनुमति दें" पर क्लिक करें.

2259694328628fba.png

  1. वर्कस्टेशन लॉन्च होने के बाद, आपको कोड OSS IDE दिखेगा.

"हो गया के रूप में चिह्नित करें" पर क्लिक करें 'शुरू करें' पेज पर, वर्कस्टेशन IDE पर

94874fba9b74cc22.png

3. क्लाउड कोड के बारे में खास जानकारी

Cloud Code में मौजूद अलग-अलग सेक्शन की समीक्षा करें.

  • Kubernetes डेवलपमेंट. अपने IDE में पूरी तरह से इंटिग्रेट किया गया Kubernetes डेवलपमेंट और डीबग करने का एनवायरमेंट पाएं. सीधे IDE में क्लस्टर बनाएं और उन्हें मैनेज करें.
  • चल रहे ऐप्लिकेशन को डीबग करना. पहले से मौजूद IDE डीबगिंग सुविधाओं का फ़ायदा लें और अपने IDE में कोड को डीबग करने के लिए, VS कोड के Cloud Code और IntelliJ के लिए Cloud कोड का इस्तेमाल करें.
  • डिप्लॉयमेंट के बारे में जानें. अपने Kubernetes क्लस्टर और Cloud Run सेवाओं के लिए बुनियादी संसाधन और मेटाडेटा देखें. आपके पास किसी जानकारी को फ़ेच करने, लॉग देखने, सीक्रेट मैनेज करने या पॉड में सीधे टर्मिनल पाने का विकल्प होता है.
  • Kubernetes के लोकल डेवलपमेंट को आसान बनाएं. कवर के तहत, IDEs के लिए Cloud Code, आपके कोड के बारे में रीयल टाइम में लगातार सुझाव देने के लिए Skaffold, Jib, और kubectl जैसे लोकप्रिय टूल इस्तेमाल करते हैं.

e4e89eea9ff45dff.png

Google Cloud में साइन इन करें

  1. Cloud Code आइकॉन पर क्लिक करें और "Google Cloud में साइन इन करें" को चुनें:

1769afd39be372ff.png

  1. "साइन इन करने के लिए आगे बढ़ें" पर क्लिक करें.

923bb1c8f63160f9.png

  1. Terminal में आउटपुट देखें और लिंक खोलें:

517fdd579c34aa21.png

  1. अपने Qwiklabs छात्र-छात्राओं के क्रेडेंशियल के साथ लॉगिन करें.

db99b345f7a8e72c.png

  1. "अनुमति दें" चुनें:

a5376553c430ac84.png

  1. पुष्टि करने वाला कोड कॉपी करें और Workstation टैब पर वापस जाएं.

6719421277b92eac.png

  1. पुष्टि करने के लिए भेजा गया कोड चिपकाएं और Enter दबाएं.

e9847cfe3fa8a2ce.png

"अनुमति दें" पर क्लिक करें बटन पर क्लिक करें, ताकि आप वर्कस्टेशन में कॉपी कर सकें.

58149777e5cc350a.png

4. नया Python स्टार्टर ऐप्लिकेशन बनाएं

इस सेक्शन में, आपको एक नया Python ऐप्लिकेशन बनाना होगा.

  1. नया टर्मिनल खोलें.

c31d48f2e4938c38.png

  1. नई डायरेक्ट्री बनाएं और उसे फ़ाइल फ़ोल्डर के तौर पर खोलें
mkdir music-service && cd music-service

code-oss-cloud-workstations -r --folder-uri="$PWD"
  1. requirements.txt नाम की एक फ़ाइल बनाएं और यहां दिए गए कॉन्टेंट को उसमें कॉपी करें

789e8389170bd900.png

Flask
gunicorn
ptvsd==4.3.2
  1. app.py नाम की एक फ़ाइल बनाएं और उसमें यह कोड चिपकाएं
import os
from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route("/")
def hello_world():
    message="Hello, World!"
    return message

if __name__ == '__main__':
    server_port = os.environ.get('PORT', '8080')
    app.run(debug=False, port=server_port, host='0.0.0.0')
  1. Dockerfile नाम की एक फ़ाइल बनाएं और उसमें इन्हें चिपकाएं
FROM python:3.8
ARG FLASK_DEBUG=0
ENV FLASK_DEBUG=$FLASK_DEBUG
ENV FLASK_APP=app.py
WORKDIR /app
COPY requirements.txt .
RUN pip install --trusted-host pypi.python.org -r requirements.txt
COPY . .
ENTRYPOINT ["python3", "-m", "flask", "run", "--port=8080", "--host=0.0.0.0"]

ध्यान दें: FLASK_DEBUG=1 आपको Python फ़्लास्क ऐप्लिकेशन में, कोड में हुए बदलावों को अपने-आप फिर से लोड करने की सुविधा देता है. इस Dockerfile की मदद से, इस वैल्यू को बिल्ड आर्ग्युमेंट के तौर पर पास किया जा सकता है.

मेनिफ़ेस्ट जनरेट करें

अपने टर्मिनल में, डिफ़ॉल्ट skaffold.yaml और deployment.yaml जनरेट करने के लिए यह कमांड चलाएं

  1. नीचे दिए गए निर्देश से, स्केलोल्ड को शुरू करें
skaffold init --generate-manifests

जब आपसे कहा जाए, तब कर्सर को एक से दूसरी जगह ले जाने के लिए ऐरो का इस्तेमाल करें. साथ ही, विकल्पों को चुनने के लिए स्पेसबार का इस्तेमाल करें.

चुनें:

  • पोर्ट के लिए 8080
  • कॉन्फ़िगरेशन सेव करने के लिए y

स्केलोल्ड कॉन्फ़िगरेशन अपडेट करें

  • ऐप्लिकेशन का डिफ़ॉल्ट नाम बदलना
  • skaffold.yaml खोलें
  • इमेज के उस नाम को चुनें जो फ़िलहाल dockerfile-image के तौर पर सेट है
  • राइट क्लिक करें और 'सभी घटनाएं बदलें' को चुनें
  • नया नाम, python-app के तौर पर लिखें
  • बिल्ड सेक्शन में और बदलाव करके
  • FLASK_DEBUG=1 पास करने के लिए docker.buildArgs जोड़ें
  • IDE से चल रहे कंटेनर तक, *.py फ़ाइलों में किए गए किसी भी बदलाव को लोड करने के लिए सेटिंग सिंक करें

बदलावों के बाद, skaffold.yaml फ़ाइल में बिल्ड सेक्शन कुछ ऐसा दिखेगा:

build:
 artifacts:
 - image: python-app
   docker:
     buildArgs:
       FLASK_DEBUG: "1"
     dockerfile: Dockerfile
   sync:
     infer:
     - '**/*.py'

Kubernetes कॉन्फ़िगरेशन फ़ाइल में बदलाव करें

  1. डिफ़ॉल्ट नाम बदलना
  • deployment.yaml फ़ाइल खोलें
  • इमेज के उस नाम को चुनें जो फ़िलहाल dockerfile-image के तौर पर सेट है
  • राइट क्लिक करें और 'सभी घटनाएं बदलें' को चुनें
  • नया नाम, python-app के तौर पर लिखें

5. डेवलपमेंट प्रोसेस की जानकारी

कारोबारी लॉजिक को जोड़कर अब अपने ऐप्लिकेशन को डिप्लॉय और टेस्ट किया जा सकता है. नीचे दिए गए सेक्शन में, Cloud Code प्लगिन के इस्तेमाल के बारे में बताया जाएगा. इसके अलावा, यह प्लगिन आपकी डेवलपमेंट प्रोसेस को आसान बनाने के लिए skaffold के साथ इंटिग्रेट होता है. अगर इन चरणों को GKE (जीकेई) पर डिप्लॉय किया जाता है, तो Cloud Code और Skaffold, आपके कंटेनर की इमेज अपने-आप बनाएंगे, उसे कंटेनर रजिस्ट्री में पुश करेंगे, और फिर your ऐप्लिकेशन को GKE (जीकेई) पर डिप्लॉय करेंगे. ऐसा, पर्दे के पीछे की गतिविधियों और डेवलपर फ़्लो से जुड़ी जानकारी को समझकर किया जा सकता है.

Kubernetes क्लस्टर जोड़ें

  1. कोई क्लस्टर जोड़ें

62a3b97bdbb427e5.png

  1. Google Kubernetes Engine चुनें:

9577de423568bbaa.png

  1. प्रोजेक्ट चुनें.

c5202fcbeebcd41c.png

  1. "Python-cluster" को चुनें जो शुरुआती सेटअप में बनाया गया था.

719c2fc0a7f9e84f.png

  1. क्लस्टर अब Cloud Code के तहत, Kubernetes क्लस्टर की सूची में दिखता है. क्लस्टर को यहां से नेविगेट करें और उसके बारे में ज़्यादा जानें.

7e5f50662d4eea3c.png

Kubernetes में डिप्लॉय करें

  1. Cloud Shell Editor में सबसे नीचे मौजूद पैनल में, Cloud Code फ़ाॅर्म चुनें

d99a88992e15fea9.png

  1. सबसे ऊपर दिखने वाले पैनल में, Kubernetes पर चलाएं को चुनें.

अगर पूछा जाए, तो मौजूदा Kubernetes संदर्भ इस्तेमाल करने के लिए 'हां' चुनें.

bfd65e9df6d4a6cb.png

यह निर्देश, सोर्स कोड बनाना शुरू करता है और फिर टेस्ट करता है. बिल्ड और टेस्ट को पूरा होने में कुछ मिनट लगेंगे. इन टेस्ट में यूनिट टेस्ट शामिल होते हैं. साथ ही, इनमें पुष्टि करने का एक चरण शामिल होता है, जो डिप्लॉयमेंट एनवायरमेंट के लिए सेट किए गए नियमों की जांच करता है. पुष्टि करने का यह चरण पहले ही कॉन्फ़िगर किया जा चुका है. इससे यह पक्का होता है कि आपको डेवलपमेंट एनवायरमेंट में काम करने के दौरान, डिप्लॉयमेंट से जुड़ी समस्याओं की चेतावनी मिलती रहे.

  1. पहली बार निर्देश चलाने पर स्क्रीन के सबसे ऊपर एक प्रॉम्प्ट दिखेगा, जिसमें पूछा जाएगा कि क्या आपको मौजूदा kubernetes कॉन्टेक्स्ट चाहिए या नहीं. इसके लिए, "हां" चुनें और उसका इस्तेमाल मौजूदा संदर्भ के तौर पर करें.
  2. इसके बाद एक प्रॉम्प्ट दिखेगा, जिसमें पूछा जाएगा कि किस कंटेनर रजिस्ट्री का इस्तेमाल करना है. दी गई डिफ़ॉल्ट वैल्यू को स्वीकार करने के लिए, Enter दबाएं
  3. "आउटपुट" चुनें प्रोग्रेस और सूचनाएं देखने के लिए निचले पैनल के टैब में. ड्रॉपडाउन का इस्तेमाल करके, "Kubernetes: रन/डीबग" चुनें

9c87ccbf5d06f50a.png

  1. "Kubernetes: रन/डीबग - ज़्यादा जानकारी" चुनें अतिरिक्त विवरण और कंटेनर से लाइव स्ट्रीमिंग लॉग देखने के लिए दाईं ओर दिए गए चैनल ड्रॉप-डाउन में

804abc8833ffd571.png

बिल्ड और टेस्ट पूरे होने के बाद, आउटपुट टैब के लॉग में "Kubernetes: Run/Debug" नाम से लिंक की गई यूआरएल http://localhost: 8080 होगा व्यू.

  1. Cloud Code टर्मिनल में, आउटपुट में मौजूद पहले यूआरएल (http://localhost:8080) पर कर्सर घुमाएं. इसके बाद, दिखने वाले टूल टिप में 'वेब झलक खोलें' चुनें.
  2. एक नया ब्राउज़र टैब खुलेगा और यह मैसेज दिखाएगा: Hello, World!

फिर से लोड करें

  1. app.py फ़ाइल खोलें
  2. वेलकम मैसेज को Hello from Python में बदलें

ध्यान दें कि Output विंडो Kubernetes: Run/Debug व्यू में, वॉचर अपडेट की गई फ़ाइलों को Kubernetes के कंटेनर के साथ सिंक करता है

Update initiated
Build started for artifact python-app
Build completed for artifact python-app

Deploy started
Deploy completed

Status check started
Resource pod/python-app-6f646ffcbb-tn7qd status updated to In Progress
Resource deployment/python-app status updated to In Progress
Resource deployment/python-app status completed successfully
Status check succeeded
...
  1. Kubernetes: Run/Debug - Detailed व्यू पर स्विच करने पर, यह दिखेगा कि ऐप्लिकेशन में किए गए बदलावों की पहचान करने के बाद, यह ऐप्लिकेशन को बनाता और फिर से डिप्लॉय करता है
files modified: [app.py]
Syncing 1 files for gcr.io/veer-pylab-01/python-app:3c04f58-dirty@sha256:a42ca7250851c2f2570ff05209f108c5491d13d2b453bb9608c7b4af511109bd
Copying files:map[app.py:[/app/app.py]]togcr.io/veer-pylab-01/python-app:3c04f58-dirty@sha256:a42ca7250851c2f2570ff05209f108c5491d13d2b453bb9608c7b4af511109bd
Watching for changes...
[python-app] * Detected change in '/app/app.py', reloading
[python-app] * Restarting with stat
[python-app] * Debugger is active!
[python-app] * Debugger PIN: 744-729-662
  1. अपडेट किए गए नतीजे देखने के लिए, उस ब्राउज़र टैब को रीफ़्रेश करें जहां आपने पिछले नतीजे देखे थे.

डीबग करना

  1. डीबग व्यू पर जाएं और मौजूदा थ्रेड 647213126d7a4c7b.png को रोकें. अगर आपसे कहा जाए, तो हर बार दौड़ने के बाद स्टोरेज खाली किया जा सकता है.
  2. 70d6bd947d04d1e6.png
  3. ऐप्लिकेशन को debug मोड में चलाने के लिए, सबसे नीचे मौजूद मेन्यू में Cloud Code पर क्लिक करें और Debug on Kubernetes को चुनें.

b9465c6825caf685.png

  • Output विंडो के Kubernetes Run/Debug - Detailed व्यू में, ध्यान दें कि skaffold, इस ऐप्लिकेशन को डीबग मोड में डिप्लॉय करेगा.
  1. पहली बार इस प्रॉम्प्ट को चलाने पर, आपसे पूछा जाएगा कि कंटेनर के अंदर सोर्स कहां है. यह वैल्यू Dockerfile में मौजूद डायरेक्ट्री से जुड़ी है.

डिफ़ॉल्ट सहमति को स्वीकार करने के लिए Enter दबाएं

fccc866f32b5ed86.png

ऐप्लिकेशन को बनाने और डिप्लॉय करने में कुछ मिनट लगेंगे. अगर डीबग सेशन डिसकनेक्ट हो गया है, तो "Kubernetes पर डीबग" करने के चरणों को फिर से चलाएं "डेवलपमेंट सेशन" से सेक्शन में जाएं.

  1. प्रोसेस पूरी होने के बाद. आपको दिखेगा कि डीबगर जुड़ा हुआ है और आउटपुट टैब में लिखा है: Attached debugger to container "python-app-8476f4bbc-h6dsl" successfully. और यूआरएल http://localhost:8080 सूची में मौजूद है.
Port forwarding pod/python-app-8bd64cf8b-cskfl in namespace default, remote port 5678 -> http://127.0.0.1:5678
  1. सबसे नीचे मौजूद स्टेटस बार का रंग नीले से नारंगी रंग में बदल जाता है. इससे पता चलता है कि यह डीबग मोड में है.

b2abd61a129ed76.png

  1. Kubernetes Run/Debug व्यू में, देखें कि डीबग किया जा सकने वाला कंटेनर शुरू हो गया है
**************URLs*****************
Forwarded URL from service python-app: http://localhost:8080
Debuggable container started pod/python-app-8bd64cf8b-cskfl:python-app (default)
Update succeeded
***********************************

ब्रेकपॉइंट इस्तेमाल करें

  1. app.py फ़ाइल खोलें
  2. return message वाला स्टेटमेंट ढूंढें
  3. लाइन नंबर की बाईं ओर मौजूद खाली जगह पर क्लिक करके, उस लाइन में एक ब्रेकपॉइंट जोड़ें. ब्रेकपॉइंट सेट होने का पता लगाने के लिए, लाल रंग का इंंडिकेटर दिखेगा
  4. अपने ब्राउज़र को फिर से लोड करें और ध्यान दें कि डीबगर, ब्रेकपॉइंट पर प्रोसेस को रोक देता है. साथ ही, इससे आपको GKE (जीकेई) में रिमोट तरीके से चल रहे ऐप्लिकेशन के वैरिएबल और स्थिति की जांच करने की अनुमति मिलती है
  5. 'वैरिएबल' सेक्शन में नीचे की ओर क्लिक करें
  6. वहां मौजूद 'स्थानीय' पर क्लिक करने पर आपको "message" वैरिएबल दिखेगा.
  7. वैरिएबल के नाम "मैसेज" पर दो बार क्लिक करें और पॉप-अप में, वैल्यू को बदलकर "Greetings from Python" जैसा कुछ करें
  8. डीबग कंट्रोल पैनल में 'जारी रखें' बटन पर क्लिक करें 607c33934f8d6b39.png
  9. अपने ब्राउज़र में उस जवाब की समीक्षा करें जो अब आपकी डाली गई अपडेट की गई वैल्यू दिखाता है.
  10. "डीबग" बंद करना मोड चालू करने के लिए, 'रोकें' बटन 647213126d7a4c7b.png को दबाएं. इसके बाद, ब्रेकपॉइंट पर फिर से क्लिक करके ब्रेकपॉइंट हटाएं.

6. साफ़-सफ़ाई सेवा

बधाई हो! इस लैब में, आपने शुरुआत से एक नया Python ऐप्लिकेशन बनाया है और उसे कंटेनर के साथ असरदार तरीके से काम करने के लिए कॉन्फ़िगर किया है. इसके बाद, आपने पुराने ऐप्लिकेशन स्टैक में मिलने वाले डेवलपर फ़्लो का इस्तेमाल करके, अपने ऐप्लिकेशन को किसी रिमोट GKE क्लस्टर में डिप्लॉय और डीबग किया.

लैब पूरा होने के बाद, स्टोरेज खाली करने के लिए:

  1. लैब में इस्तेमाल की गई फ़ाइलें मिटाना
cd ~ && rm -rf ~/music-service
  1. प्रोजेक्ट को मिटाएं, ताकि उससे जुड़े सभी इन्फ़्रास्ट्रक्चर और संसाधनों को हटाया जा सके

पिछला अपडेट: 22/3/23