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

Cloud Workstations क्या है?
Cloud Workstations, Google Cloud पर मैनेज किए गए डेवलपमेंट एनवायरमेंट उपलब्ध कराता है. इसमें सुरक्षा की सुविधा पहले से मौजूद होती है. साथ ही, डेवलपमेंट एनवायरमेंट पहले से कॉन्फ़िगर किए गए होते हैं, लेकिन इन्हें अपनी ज़रूरत के हिसाब से कॉन्फ़िगर किया जा सकता है. ब्राउज़र पर आधारित आईडीई, एक से ज़्यादा लोकल कोड एडिटर (जैसे, VSCode या JetBrains आईडीई, जैसे कि IntelliJ IDEA Ultimate और PyCharm Professional) या SSH के ज़रिए Cloud Workstations को ऐक्सेस करें.
Cloud Workstations इन संसाधनों का इस्तेमाल करता है:
- एडमिन, वर्कस्टेशन क्लस्टर बनाते हैं
- हर वर्कस्टेशन क्लस्टर में, एडमिन एक या उससे ज़्यादा वर्कस्टेशन कॉन्फ़िगरेशन बनाते हैं. ये वर्कस्टेशन के लिए टेंप्लेट के तौर पर काम करते हैं.
- डेवलपर ऐसे वर्कस्टेशन बना सकते हैं जो डेवलपमेंट एनवायरमेंट तय करते हैं. इनमें Cloud IDE, भाषा के टूल, लाइब्रेरी वगैरह शामिल होती हैं.
Cloud Workstations की मदद से, आईटी और सुरक्षा एडमिन अपने डेवलपमेंट एनवायरमेंट को आसानी से उपलब्ध करा सकते हैं, उन्हें बड़े पैमाने पर इस्तेमाल कर सकते हैं, मैनेज कर सकते हैं, और सुरक्षित रख सकते हैं. साथ ही, डेवलपर को एक जैसे कॉन्फ़िगरेशन और पसंद के मुताबिक बनाए जा सकने वाले टूल के साथ डेवलपमेंट एनवायरमेंट ऐक्सेस करने की अनुमति मिलती है.
Cloud Workstations, ऐप्लिकेशन डेवलपमेंट एनवायरमेंट की सुरक्षा को बेहतर बनाकर, सुरक्षा को बाईं ओर ले जाने में मदद करता है. इसमें सुरक्षा से जुड़ी सुविधाएं हैं. जैसे, वीपीसी सेवा कंट्रोल, निजी इनग्रेस या इग्रेस, इमेज को अपडेट करने की सुविधा, और पहचान और ऐक्सेस मैनेजमेंट से जुड़ी नीतियां.
Cloud Code क्या है?
Cloud Code, Kubernetes और Cloud Run ऐप्लिकेशन के पूरे डेवलपमेंट साइकल के लिए आईडीई की सुविधा देता है. इसमें सैंपल टेंप्लेट से नया ऐप्लिकेशन बनाना और उसे पसंद के मुताबिक बनाना, साथ ही तैयार ऐप्लिकेशन को चलाना शामिल है. Cloud Code, आपको हर तरह से मदद करता है. जैसे, इस्तेमाल के लिए तैयार सैंपल, कॉन्फ़िगरेशन के स्निपेट, और डीबग करने की सुविधा. इससे Kubernetes और Cloud Run की मदद से डेवलपमेंट करना बहुत आसान हो जाता है!
Cloud Code की कुछ सुविधाएं यहां दी गई हैं:
- ऐप्लिकेशन को लगातार बनाना और चलाना
- डेवलप किए जा रहे Kubernetes ऐप्लिकेशन को डीबग करने में मदद
- स्ट्रीमिंग और देखने की जानकारी लॉग करना
Cloud Code की अन्य सुविधाओं के बारे में ज़्यादा जानें.
आपको क्या सीखने को मिलेगा
इस लैब में, आपको GCP में कंटेनर का इस्तेमाल करके डेवलपमेंट करने के तरीकों के बारे में जानकारी मिलेगी. जैसे:
- Cloud Workstations की समीक्षा करना
- Workstation लॉन्च करना
- Cloud Code की समीक्षा करना
- Kubernetes पर डीबग करना
2. सेटअप और ज़रूरी शर्तें
अपनी स्पीड से एनवायरमेंट सेट अप करना
- Google Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से कोई Gmail या Google Workspace खाता नहीं है, तो आपको एक खाता बनाना होगा.



- प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों के लिए डिसप्ले नेम होता है. यह एक वर्ण स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करते. इसे कभी भी अपडेट किया जा सकता है.
- प्रोजेक्ट आईडी, सभी Google Cloud प्रोजेक्ट के लिए यूनीक होता है. साथ ही, इसे बदला नहीं जा सकता. Cloud Console, यूनीक स्ट्रिंग अपने-आप जनरेट करता है. आम तौर पर, आपको इससे कोई फ़र्क़ नहीं पड़ता. ज़्यादातर कोडलैब में, आपको प्रोजेक्ट आईडी का रेफ़रंस देना होगा. आम तौर पर, इसे
PROJECT_IDके तौर पर पहचाना जाता है. अगर आपको जनरेट किया गया आईडी पसंद नहीं है, तो कोई दूसरा रैंडम आईडी जनरेट किया जा सकता है. इसके अलावा, आपके पास अपना नाम आज़माने का विकल्प भी है. इससे आपको पता चलेगा कि वह नाम उपलब्ध है या नहीं. इस चरण के बाद, इसे बदला नहीं जा सकता. यह प्रोजेक्ट की अवधि तक बना रहेगा. - आपकी जानकारी के लिए बता दें कि एक तीसरी वैल्यू भी होती है, जिसे प्रोजेक्ट नंबर कहते हैं. इसका इस्तेमाल कुछ एपीआई करते हैं. इन तीनों वैल्यू के बारे में ज़्यादा जानने के लिए, दस्तावेज़ देखें.
- इसके बाद, आपको Cloud Console में बिलिंग चालू करनी होगी, ताकि Cloud संसाधनों/एपीआई का इस्तेमाल किया जा सके. इस कोडलैब को पूरा करने में ज़्यादा खर्च नहीं आएगा. इस ट्यूटोरियल के बाद बिलिंग से बचने के लिए, बनाए गए संसाधनों को बंद किया जा सकता है. इसके लिए, बनाए गए संसाधनों को मिटाएं या पूरे प्रोजेक्ट को मिटाएं. 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 पर कोड डिप्लॉय करना होगा. आईडीई के तौर पर Cloud Workstations का इस्तेमाल भी किया जाएगा.
नीचे दी गई सेटअप स्क्रिप्ट, आपके लिए इस इन्फ़्रास्ट्रक्चर को तैयार करती है.
- सेटअप स्क्रिप्ट डाउनलोड करें और उसे एक्ज़ीक्यूटेबल बनाएं.
wget https://raw.githubusercontent.com/GoogleCloudPlatform/container-developer-workshop/main/labs/python/setup_with_cw.sh
chmod +x setup_with_cw.sh
setup_with_cw.shफ़ाइल खोलें और उन पासवर्ड की वैल्यू में बदलाव करें जो फ़िलहाल CHANGEME पर सेट हैं- सेटअप स्क्रिप्ट चलाकर, एक GKE क्लस्टर सेट अप करें. इसका इस्तेमाल इस लैब में किया जाएगा. इस सेटअप में करीब 20 मिनट लगेंगे.
./setup_with_cw.sh &
- Cloud Console में Cloud Workstations खोलें. अगले चरणों पर जाने से पहले, क्लस्टर के
READYस्टेटस में होने का इंतज़ार करें. - अगर आपका Cloud Shell सेशन डिसकनेक्ट हो गया है, तो "फिर से कनेक्ट करें" पर क्लिक करें. इसके बाद, प्रोजेक्ट आईडी सेट करने के लिए gcloud cli कमांड चलाएं. कमांड चलाने से पहले, यहां दिए गए सैंपल प्रोजेक्ट आईडी की जगह अपना Qwiklabs प्रोजेक्ट आईडी डालें.
gcloud config set project qwiklabs-gcp-project-id
- 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 स्थिति में है.

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

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

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

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

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


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

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

- वर्कस्टेशन लॉन्च होने के बाद, आपको Code OSS IDE दिखेगा.
वर्कस्टेशन आईडीई के 'शुरू करें' पेज पर, "हो गया के तौर पर मार्क करें" पर क्लिक करें

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

Google Cloud में साइन इन करें
- क्लाउड कोड आइकॉन पर क्लिक करें और "Google Cloud में साइन इन करें" चुनें:

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

- टर्मिनल में आउटपुट देखें और लिंक खोलें:

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

- "अनुमति दें" को चुनें:

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

- पुष्टि करने के लिए कोड चिपकाएं और Enter दबाएं.

अगर आपको यह मैसेज दिखता है, तो "अनुमति दें" बटन पर क्लिक करें, ताकि आप वर्कस्टेशन में कॉपी करके चिपका सकें.

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

- नई डायरेक्ट्री बनाएं और उसे फ़ाइल फ़ोल्डर के तौर पर खोलें
mkdir music-service && cd music-service
code-oss-cloud-workstations -r --folder-uri="$PWD"
requirements.txtनाम की फ़ाइल बनाएं और इसमें यह कॉन्टेंट कॉपी करें

Flask
gunicorn
ptvsd==4.3.2
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')
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 जनरेट करने के लिए, अपने टर्मिनल में यह कमांड चलाएं
- नीचे दिए गए निर्देश का इस्तेमाल करके, Skaffold को शुरू करें
skaffold init --generate-manifests
जब आपसे कहा जाए, तो कर्सर को मूव करने के लिए ऐरो बटन का इस्तेमाल करें. साथ ही, विकल्पों को चुनने के लिए स्पेसबार का इस्तेमाल करें.
चुनें:
- पोर्ट के लिए
8080 - कॉन्फ़िगरेशन सेव करने के लिए,
yपर क्लिक करें
Skaffold कॉन्फ़िगरेशन अपडेट करना
- डिफ़ॉल्ट ऐप्लिकेशन का नाम बदलना
skaffold.yamlखोलें- फ़िलहाल
dockerfile-imageके तौर पर सेट की गई इमेज का नाम चुनें - राइट क्लिक करें और 'सभी बदलावों को बदलें' चुनें
python-appके तौर पर नया नाम डालें- बिल्ड सेक्शन में जाकर,
- पास
FLASK_DEBUG=1मेंdocker.buildArgsजोड़ें - आईडीई से कंटेनर में चल रही
*.pyफ़ाइलों में किए गए बदलावों को लोड करने के लिए, सेटिंग सिंक करें
बदलावों के बाद, skaffold.yaml फ़ाइल में मौजूद बिल्ड सेक्शन ऐसा दिखेगा:
build:
artifacts:
- image: python-app
docker:
buildArgs:
FLASK_DEBUG: "1"
dockerfile: Dockerfile
sync:
infer:
- '**/*.py'
Kubernetes कॉन्फ़िगरेशन फ़ाइल में बदलाव करना
- डिफ़ॉल्ट नाम बदलना
deployment.yamlफ़ाइल खोलो- फ़िलहाल
dockerfile-imageके तौर पर सेट की गई इमेज का नाम चुनें - राइट क्लिक करें और 'सभी बदलावों को बदलें' चुनें
python-appके तौर पर नया नाम डालें
5. डेवलपमेंट प्रोसेस के बारे में जानकारी
कारोबार से जुड़े लॉजिक को जोड़ने के बाद, अब अपने ऐप्लिकेशन को डिप्लॉय और टेस्ट किया जा सकता है. इस सेक्शन में, Cloud Code प्लगिन के इस्तेमाल के बारे में बताया गया है. यह प्लगिन, डेवलपमेंट की प्रोसेस को आसान बनाने के लिए, skaffold के साथ इंटिग्रेट होता है. नीचे दिए गए चरणों में GKE पर डिप्लॉय करने पर, Cloud Code और Skaffold आपकी कंटेनर इमेज को अपने-आप बना देंगे. इसके बाद, वे इसे Container Registry में पुश कर देंगे. इसके बाद, वे your ऐप्लिकेशन को GKE पर डिप्लॉय कर देंगे. यह प्रोसेस बैकग्राउंड में होती है. इससे डेवलपर को जानकारी नहीं मिलती.
Kubernetes क्लस्टर जोड़ना
- कोई क्लस्टर जोड़ना

- Google Kubernetes Engine चुनें:

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

- शुरुआती सेटअप में बनाए गए "python-cluster" को चुनें.

- अब यह क्लस्टर, Cloud Code में Kubernetes क्लस्टर की सूची में दिखेगा. यहां से क्लस्टर पर जाएं और उसे एक्सप्लोर करें.

Kubernetes पर डिप्लॉय करें
- Cloud Shell Editor में सबसे नीचे मौजूद पैनल में, Cloud Code  चुनें

- सबसे ऊपर दिखने वाले पैनल में, Kubernetes पर चलाएं को चुनें.
अगर कहा जाए, तो मौजूदा Kubernetes कॉन्टेक्स्ट का इस्तेमाल करने के लिए, 'हां' चुनें.

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

- ज़्यादा जानकारी और कंटेनर से लाइव स्ट्रीम किए जा रहे लॉग देखने के लिए, दाईं ओर मौजूद चैनल ड्रॉप-डाउन में "Kubernetes: Run/Debug - Detailed" चुनें

बिल्ड और टेस्ट पूरे होने के बाद, आउटपुट टैब के लॉग में, "Kubernetes: Run/Debug" व्यू में http://localhost: 8080 यूआरएल दिखेगा.
- क्लाउड कोड टर्मिनल में, आउटपुट में मौजूद पहले यूआरएल (http://localhost:8080) पर कर्सर घुमाएं. इसके बाद, दिखने वाले टूलटिप में, Open Web Preview को चुनें.
- इसके बाद, ब्राउज़र में एक नया टैब खुलेगा और आपको यह मैसेज दिखेगा:
Hello, World!
हॉट रीलोड
app.pyफ़ाइल खोलें- वेलकम मैसेज को बदलकर
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 ...
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
- अपडेट किए गए नतीजे देखने के लिए, उस ब्राउज़र टैब को रीफ़्रेश करें जहां आपने पिछले नतीजे देखे थे.
डीबग करना
- डीबग व्यू पर जाएं और मौजूदा थ्रेड
को रोकें. अगर यह विकल्प दिखता है, तो हर स्कैन के बाद डेटा मिटाने का विकल्प चुना जा सकता है. 
- सबसे नीचे मौजूद मेन्यू में,
Cloud Codeपर क्लिक करें. इसके बाद, ऐप्लिकेशन कोdebugमोड में चलाने के लिए,Debug on Kubernetesको चुनें.

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

ऐप्लिकेशन को बनाने और डिप्लॉय करने में कुछ मिनट लगेंगे. अगर डीबग सेशन डिसकनेक्ट हो जाता है, तो "डेवलपमेंट सेशन" सेक्शन में जाकर, "Kubernetes पर डीबग करना" के लिए दिए गए चरणों को फिर से पूरा करें.
- प्रोसेस पूरी होने पर. आपको दिखेगा कि एक डीबगर अटैच है और आउटपुट टैब में यह लिखा है:
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
- सबसे नीचे मौजूद स्टेटस बार का रंग नीले से बदलकर नारंगी हो जाता है. इससे पता चलता है कि यह डीबग मोड में है.

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 ***********************************
ब्रेकपॉइंट का इस्तेमाल करना
app.pyफ़ाइल खोलेंreturn messageस्टेटमेंट ढूंढें- लाइन नंबर के बाईं ओर मौजूद खाली जगह पर क्लिक करके, उस लाइन में ब्रेकपॉइंट जोड़ें. ब्रेकपॉइंट सेट होने पर, लाल रंग का इंडिकेटर दिखेगा
- अपने ब्राउज़र को फिर से लोड करें और ध्यान दें कि डीबगर, ब्रेकपॉइंट पर प्रोसेस को रोक देता है. साथ ही, आपको उन वैरिएबल और ऐप्लिकेशन की स्थिति की जांच करने की अनुमति देता है जो GKE में रिमोटली चल रहा है
- VARIABLES सेक्शन में नीचे की ओर क्लिक करें
- वहां मौजूद 'लोकल' पर क्लिक करें. आपको
"message"वैरिएबल दिखेगा. - वैरिएबल के नाम "message" पर दो बार क्लिक करें. इसके बाद, पॉप-अप में वैल्यू को किसी दूसरी वैल्यू में बदलें. जैसे,
"Greetings from Python" - डीबग कंट्रोल पैनल में मौजूद, जारी रखें बटन पर क्लिक करें

- अपने ब्राउज़र में जवाब देखें. इसमें अब वह अपडेट की गई वैल्यू दिखेगी जिसे आपने अभी डाला है.
- स्टॉप बटन
दबाकर, "डीबग" मोड बंद करें. इसके बाद, ब्रेकपॉइंट पर फिर से क्लिक करके, ब्रेकपॉइंट हटाएं.
6. साफ़-सफ़ाई सेवा
बधाई हो! इस लैब में, आपने स्क्रैच से एक नया Python ऐप्लिकेशन बनाया है. साथ ही, इसे कंटेनर के साथ असरदार तरीके से काम करने के लिए कॉन्फ़िगर किया है. इसके बाद, आपने अपने ऐप्लिकेशन को रिमोट GKE क्लस्टर पर डिप्लॉय किया और उसे डीबग किया. इसके लिए, आपने डेवलपर के उसी फ़्लो का इस्तेमाल किया जो ऐप्लिकेशन के ट्रेडिशनल स्टैक में मिलता है.
लैब पूरा होने के बाद, साफ़-सफ़ाई करने के लिए:
- लैब में इस्तेमाल की गई फ़ाइलें मिटाएं
cd ~ && rm -rf ~/music-service
- प्रोजेक्ट मिटाकर, उससे जुड़े सभी इन्फ़्रास्ट्रक्चर और संसाधन हटाएं
—
पिछला अपडेट: 22/3/23