1. खास जानकारी
Google App Engine ऐप्लिकेशन बनाने में आसान हैं, बनाए रखने में आसान हैं, और आपकी ट्रैफ़िक और डेटा मेमोरी की ज़रूरतों को बदलने के साथ-साथ स्केल करने में भी आसान हैं. App Engine में, रखरखाव के लिए कोई सर्वर नहीं होता. आप बस अपना ऐप्लिकेशन अपलोड करें और वह इस्तेमाल के लिए तैयार है.
इस कोडलैब में, आपको Flask वेब फ़्रेमवर्क के साथ लिखे गए आसान Python वेब ऐप्लिकेशन को डिप्लॉय करने का तरीका पता चलेगा. हालांकि, इस सैंपल में फ़्लास्क का इस्तेमाल किया गया है, लेकिन अन्य वेब फ़्रेमवर्क का इस्तेमाल किया जा सकता है. इनमें Django, पिरामिड, Bottle, और web.py शामिल हैं.
यह ट्यूटोरियल https://cloud.google.com/appengine/docs/standard/python3/quickstart से लिया गया है
आप इन चीज़ों के बारे में जानेंगे
- Google App Engine पर आसान Python सर्वर बनाने का तरीका.
- सर्वर को बंद किए बिना कोड अपडेट करने का तरीका.
आपको इनकी ज़रूरत होगी
- Python का इस्तेमाल करना
- vim, emacs या nano जैसे स्टैंडर्ड Linux टेक्स्ट एडिटर के बारे में जानकारी
सर्वे
इस ट्यूटोरियल का इस्तेमाल कैसे किया जाएगा?
Python के साथ अपने अनुभव को आप कितनी रेटिंग देंगे?
Google Cloud की सेवाओं का इस्तेमाल करने का आपका अनुभव कैसा रहा?
2. सेटअप और ज़रूरी शर्तें
अपने हिसाब से एनवायरमेंट सेटअप करना
- Google Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से Gmail या Google Workspace खाता नहीं है, तो आपको नया खाता बनाना होगा.
- प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों का डिसप्ले नेम होता है. यह एक वर्ण स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करता. इसे कभी भी अपडेट किया जा सकता है.
- प्रोजेक्ट आईडी, Google Cloud के सभी प्रोजेक्ट के लिए यूनीक होता है. साथ ही, इसे बदला नहीं जा सकता. इसे सेट करने के बाद बदला नहीं जा सकता. Cloud Console, एक यूनीक स्ट्रिंग अपने-आप जनरेट करता है; आम तौर पर, आपको उसके होने की कोई परवाह नहीं होती. ज़्यादातर कोडलैब में, आपको अपना प्रोजेक्ट आईडी बताना होगा. आम तौर पर, इसकी पहचान
PROJECT_ID
के रूप में की जाती है. अगर आपको जनरेट किया गया आईडी पसंद नहीं है, तो किसी भी क्रम में एक और आईडी जनरेट किया जा सकता है. दूसरा तरीका यह है कि आप खुद भी आज़माकर देखें कि वह उपलब्ध है या नहीं. इस चरण के बाद, इसे बदला नहीं जा सकता. साथ ही, यह प्रोजेक्ट के खत्म होने तक बना रहता है. - आपकी जानकारी के लिए, प्रोजेक्ट नंबर नाम की एक तीसरी वैल्यू दी गई है. इसका इस्तेमाल कुछ एपीआई करते हैं. दस्तावेज़ में इन तीनों वैल्यू के बारे में ज़्यादा जानें.
- इसके बाद, आपको क्लाउड संसाधनों/एपीआई का इस्तेमाल करने के लिए, Cloud Console में बिलिंग चालू करनी होगी. इस कोडलैब का इस्तेमाल करने पर, आपको ज़्यादा पैसे नहीं चुकाने होंगे. इस ट्यूटोरियल के अलावा, बिलिंग से बचने के लिए संसाधनों को बंद करें. इसके लिए, अपने बनाए गए संसाधनों को मिटाएं या प्रोजेक्ट को मिटाएं. Google Cloud के नए उपयोगकर्ता, 300 डॉलर के मुफ़्त ट्रायल वाले प्रोग्राम में हिस्सा ले सकते हैं.
Cloud Shell शुरू करना
Google Cloud को आपके लैपटॉप से, कहीं से भी ऑपरेट किया जा सकता है. हालांकि, इस कोडलैब में Cloud Shell का इस्तेमाल किया जा रहा है. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.
Cloud Shell चालू करें
- Cloud Console में, Cloud Shell चालू करें पर क्लिक करें.
अगर आपने Cloud Shell का इस्तेमाल पहली बार किया है, तो आपको बीच में आने वाली स्क्रीन दिखेगी. इसमें यह बताया जाएगा कि यह क्या है. अगर आपको बीच के लेवल पर मिलने वाली स्क्रीन दिखती है, तो जारी रखें पर क्लिक करें.
प्रावधान करने और Cloud Shell से कनेक्ट होने में कुछ ही समय लगेगा.
इस वर्चुअल मशीन में डेवलपमेंट के सभी ज़रूरी टूल मौजूद हैं. इसमें लगातार पांच जीबी की होम डायरेक्ट्री मिलती है और यह Google Cloud में काम करती है. यह नेटवर्क की परफ़ॉर्मेंस और ऑथेंटिकेशन को बेहतर बनाने में मदद करती है. अगर सभी नहीं, तो इस कोडलैब में आपका बहुत सारा काम ब्राउज़र से किया जा सकता है.
Cloud Shell से कनेक्ट करने के बाद, आपको दिखेगा कि आपकी पुष्टि हो चुकी है और प्रोजेक्ट आपके प्रोजेक्ट आईडी पर सेट है.
- यह पुष्टि करने के लिए Cloud Shell में नीचे दिया गया कमांड चलाएं कि आपकी पुष्टि हो गई है:
gcloud auth list
कमांड आउटपुट
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
- Cloud Shell में यह कमांड चलाएं, ताकि यह पुष्टि की जा सके कि gcloud के लिए कमांड को आपके प्रोजेक्ट के बारे में जानकारी है:
gcloud config list project
कमांड आउटपुट
[core] project = <PROJECT_ID>
अगर ऐसा नहीं है, तो आप इसे इस निर्देश की मदद से सेट कर सकते हैं:
gcloud config set project <PROJECT_ID>
कमांड आउटपुट
Updated property [core/project].
3. वेब ऐप्लिकेशन लिखें
Cloud Shell लॉन्च होने के बाद, Cloud SDK gcloud
कमांड या वर्चुअल मशीन इंस्टेंस पर उपलब्ध अन्य टूल को शुरू करने के लिए, कमांड लाइन का इस्तेमाल किया जा सकता है. अपनी $HOME
डायरेक्ट्री का इस्तेमाल, डिस्क के स्थायी स्टोरेज में किया जा सकता है. इससे सभी प्रोजेक्ट में और Cloud Shell सेशन के बीच फ़ाइलों को सेव किया जा सकता है. आपकी $HOME
डायरेक्ट्री सिर्फ़ आपके लिए है और इसे दूसरे उपयोगकर्ता ऐक्सेस नहीं कर सकते.
चलिए, ऐप्लिकेशन के लिए अपनी $HOME
डायरेक्ट्री में एक नया फ़ोल्डर बनाकर शुरुआत करते हैं:
mkdir ~/helloworld cd ~/helloworld
main.py
नाम की फ़ाइल बनाएं:
touch main.py
अपने पसंदीदा कमांड लाइन एडिटर (नैनो, vim या emacs) का इस्तेमाल करके या क्लाउड शेल एडिटर बटन पर क्लिक करके फ़ाइल में बदलाव करें:
Cloud Shell Editor से फ़ाइल में सीधे बदलाव करने के लिए, इस निर्देश का इस्तेमाल करें:
cloudshell edit main.py
main.py
import flask
# If `entrypoint` is not defined in app.yaml, App Engine will look for an app
# called `app` in `main.py`.
app = flask.Flask(__name__)
@app.get("/")
def hello():
"""Return a friendly HTTP greeting."""
return "Hello World!\n"
if __name__ == "__main__":
# Used when running locally only. When deploying to Google App
# Engine, a webserver process such as Gunicorn will serve the app. This
# can be configured by adding an `entrypoint` to app.yaml.
app.run(host="localhost", port=8080, debug=True)
4. डिपेंडेंसी तय करना
अपने वेब ऐप्लिकेशन की डिपेंडेंसी तय करने के लिए, टर्मिनल पर वापस जाएं और अपने प्रोजेक्ट की रूट डायरेक्ट्री में requirements.txt
फ़ाइल बनाएं. इसमें फ़्लास्क के सटीक वर्शन का इस्तेमाल करें:
touch requirements.txt
Cloud Shell Editor की मदद से फ़ाइल में बदलाव करने के लिए, इस निर्देश का इस्तेमाल करें:
cloudshell edit requirements.txt
requirements.txt
# https://pypi.org/project/Flask
Flask==3.0.2
5. डिप्लॉयमेंट को कॉन्फ़िगर करें
अपने वेब ऐप्लिकेशन को App Engine पर डिप्लॉय करने के लिए, आपको app.yaml
फ़ाइल की ज़रूरत होगी. यह कॉन्फ़िगरेशन फ़ाइल, App Engine के लिए आपके वेब ऐप्लिकेशन की सेटिंग तय करती है.
टर्मिनल से, अपने प्रोजेक्ट की रूट डायरेक्ट्री में app.yaml
फ़ाइल बनाएं और उसमें बदलाव करें:
touch app.yaml
Cloud Shell Editor की मदद से फ़ाइल में बदलाव करने के लिए, इस निर्देश का इस्तेमाल करें:
cloudshell edit app.yaml
app.yaml
runtime: python312
6. वेब ऐप्लिकेशन डिप्लॉय करें
टर्मिनल से, अपनी डायरेक्ट्री का कॉन्टेंट जांचें:
ls
आपके पास ये तीन फ़ाइलें होनी चाहिए:
app.yaml main.py requirements.txt
अपने वेब ऐप्लिकेशन को नीचे दिए गए निर्देश की मदद से डिप्लॉय करें:
gcloud app deploy
पहली बार, आपको डिप्लॉयमेंट क्षेत्र चुनना होगा:
Please choose the region where you want your App Engine application located: [1] asia-east2 ... [7] australia-southeast1 [8] europe-west [9] europe-west2 ... [12] northamerica-northeast1 [13] southamerica-east1 ... [19] us-west4 ... Please enter your numeric choice:
डिप्लॉयमेंट लॉन्च करने की पुष्टि करें:
Creating App Engine application in project [PROJECT_ID] and region [REGION]....done. Services to deploy: descriptor: [~/helloworld/app.yaml] source: [~/helloworld] target project: [PROJECT_ID] target service: [default] target version: [YYYYMMDDtHHMMSS] target url: [https://PROJECT_ID.REGION_ID.r.appspot.com] Do you want to continue (Y/n)?
आपका ऐप्लिकेशन डिप्लॉय होता है:
Beginning deployment of service [default]... Created .gcloudignore file. See `gcloud topic gcloudignore` for details. Uploading 3 files to Google Cloud Storage 100% File upload done. Updating service [default]...done. Setting traffic split for service [default]...done. Deployed service [default] to [https://PROJECT_ID.REGION_ID.r.appspot.com]
आपका वेब ऐप्लिकेशन अब https://PROJECT_ID.REGION_ID.r.appspot.com
पर एचटीटीपी अनुरोधों का जवाब देने के लिए तैयार है.
7. वेब ऐप्लिकेशन की जांच करें
आपका वेब ऐप्लिकेशन, https://PROJECT_ID.REGION_ID.r.appspot.com
पर एचटीटीपी अनुरोधों का जवाब देने के लिए तैयार है.
सबसे पहले, gcloud app describe
निर्देश का इस्तेमाल करके, अपने वेब ऐप्लिकेशन का होस्टनेम पाएं:
APPENGINE_HOSTNAME=$(gcloud app describe --format "value(defaultHostname)")
इस आसान एचटीटीपी GET अनुरोध की मदद से अपने वेब ऐप्लिकेशन की जांच करें:
curl https://$APPENGINE_HOSTNAME
आपको यह जवाब मिलना चाहिए:
Hello World!
खास जानकारी
पिछले चरणों में, आपने एक आसान Python वेब ऐप्लिकेशन सेट अप किया था, उसे चलाया, और App Engine पर डिप्लॉय किया था.
8. वेब ऐप्लिकेशन को अपडेट करना
अपनी main.py
फ़ाइल के hello()
फ़ंक्शन के मुख्य हिस्से को बदलकर, अपने वेब ऐप्लिकेशन में बदलाव करें.
Cloud Shell Editor की मदद से फ़ाइल में बदलाव करने के लिए, इस निर्देश का इस्तेमाल करें:
cloudshell edit main.py
main.py
import flask
# If `entrypoint` is not defined in app.yaml, App Engine will look for an app
# called `app` in `main.py`.
app = flask.Flask(__name__)
@app.get("/")
def hello():
"""Return a friendly HTTP greeting."""
# return "Hello World!\n" # ← Replace this line
who = flask.request.args.get("who", "World")
return f"Hello {who}!\n"
if __name__ == "__main__":
# Used when running locally only. When deploying to Google App
# Engine, a webserver process such as Gunicorn will serve the app. This
# can be configured by adding an `entrypoint` to app.yaml.
app.run(host="localhost", port=8080, debug=True)
टर्मिनल से, अपने वेब ऐप्लिकेशन को अपडेट करने के लिए फिर से डिप्लॉय करें:
gcloud app deploy --quiet
आपके ऐप्लिकेशन का नया वर्शन डिप्लॉय किया जाता है:
Beginning deployment of service [default]... Uploading 1 file to Google Cloud Storage ... Deployed service [default] to [https://PROJECT_ID.REGION_ID.r.appspot.com]
अपने वेब ऐप्लिकेशन के नए वर्शन की जांच ठीक उसी तरह करें जैसे आपने पहले किया था:
curl https://$APPENGINE_HOSTNAME
आपको एक जैसा जवाब मिलना चाहिए:
Hello World!
वैकल्पिक पैरामीटर के साथ इसकी जांच करें:
curl https://$APPENGINE_HOSTNAME?who=Universe
आपको यह जवाब मिलना चाहिए:
Hello Universe!
खास जानकारी
इस चरण में, आपने बिना किसी रुकावट के अपने वेब ऐप्लिकेशन को अपडेट और फिर से डिप्लॉय किया है.
9. बधाई हो!
आपने Python में अपना पहला App Engine वेब ऐप्लिकेशन लिखना सीख लिया है!
ज़्यादा जानें
- App Engine से जुड़े दस्तावेज़: https://cloud.google.com/appengine
- App Engine पर पूरी तरह से डेवलप किया गया Python ऐप्लिकेशन लिखने का तरीका जानने के लिए, यह ट्यूटोरियल देखें: https://cloud.google.com/appengine/docs/standard/python3/building-app
लाइसेंस
इस काम को क्रिएटिव कॉमंस एट्रिब्यूशन 2.0 जेनरिक लाइसेंस के तहत लाइसेंस मिला है.