मॉड्यूल 11: Google App Engine से Cloud Functions पर माइग्रेट करना

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

कोडलैब के बिना सर्वर वाले माइग्रेशन स्टेशन की सीरीज़ (अपने हिसाब से इस्तेमाल किए जाने वाले ट्यूटोरियल) और मिलते-जुलते वीडियो का मकसद, Google Cloud के बिना सर्वर वाले डेवलपर को अपने ऐप्लिकेशन को आधुनिक बनाने में मदद करना है. ऐसा करने के लिए, उन्हें लेगसी सेवाओं का इस्तेमाल बंद करना होगा. ऐसा करने के लिए, उन्हें एक या एक से ज़्यादा माइग्रेशन में मदद मिलेगी. ऐसा करने से, आपके ऐप्लिकेशन ज़्यादा पोर्टेबल बन जाते हैं. साथ ही, आपको ज़्यादा विकल्प और सुविधाएं भी मिलती हैं. इससे, क्लाउड प्रॉडक्ट की बड़ी रेंज को इंटिग्रेट किया जा सकता है और उन्हें ऐक्सेस किया जा सकता है. साथ ही, नई भाषाओं में रिलीज़ किए जाने वाले ऐप्लिकेशन पर आसानी से अपग्रेड किया जा सकता है. शुरुआत में App Engine (स्टैंडर्ड एनवायरमेंट) वाले डेवलपर पर ध्यान दिया जाता है. हालांकि, यह सीरीज़ इतनी बड़ी है कि इसमें Cloud Functions और Cloud Run जैसे बिना सर्वर वाले प्लैटफ़ॉर्म या लागू होने पर, उन्हें शामिल किया जा सकता है.

ऐसी स्थितियां हो सकती हैं, जब आपके पास "पूरा ऐप्लिकेशन" न हो के लिए App Engine या Cloud Run के संसाधनों की ज़रूरत पड़ती है. अगर आपके कोड में सिर्फ़ माइक्रोसेवा या आसान फ़ंक्शन शामिल है, तो हो सकता है कि Cloud Functions बेहतर विकल्प हो. यह कोडलैब आपको आसान App Engine ऐप्लिकेशन को माइग्रेट करने (या बड़े ऐप्लिकेशन को एक से ज़्यादा माइक्रोसेवाओं में बांटने) का तरीका सिखाता है. साथ ही, उन्हें Cloud Functions पर डिप्लॉय करने का तरीका बताता है, जो खास तौर पर इस तरह के इस्तेमाल के लिए बनाया गया प्लैटफ़ॉर्म है.

आपको इनके बारे में जानकारी मिलेगी

  • Cloud Shell का इस्तेमाल करना
  • Google Cloud Translation API चालू करना
  • एपीआई अनुरोधों की पुष्टि करें
  • छोटे App Engine ऐप्लिकेशन को Cloud Functions पर चलाने के लिए बदलें
  • अपने कोड को Cloud Functions पर डिप्लॉय करें

आपको इनकी ज़रूरत होगी

सर्वे

इस ट्यूटोरियल का इस्तेमाल कैसे किया जाएगा?

इसे सिर्फ़ पढ़ें इसे पढ़ें और कसरतों को पूरा करें

Python के साथ अपने अनुभव को आप कितनी रेटिंग देंगे?

शुरुआती इंटरमीडिएट कुशल

Google Cloud की सेवाएं इस्तेमाल करने का आपका अनुभव कैसा रहा?

शुरुआती इंटरमीडिएट कुशल

2. बैकग्राउंड

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

हालांकि, जबकि मोबाइल ऐप्लिकेशन के लिए फ़ुल-स्टैक वेब ऐप्लिकेशन डेवलपमेंट या जटिल बैक-एंड की सुविधा App Engine के लिए बहुत अच्छी है. हालांकि, अक्सर ऐसा होता है कि डेवलपर मुख्य रूप से कुछ सुविधाएं ऑनलाइन रखने की कोशिश करते हैं, जैसे कि न्यूज़ फ़ीड अपडेट करना या होम टीम के प्लेऑफ़ गेम का ताज़ा स्कोर हासिल करना. हालांकि, दोनों स्थितियों के लिए कोडिंग लॉजिक मौजूद होता है, लेकिन इनमें से कोई भी "ऐप्लिकेशन" पूरी तरह से नहीं दिखता है App Engine की पावर की ज़रूरत होती है. ऐसी जगह पर Cloud Functions आता है.

Cloud Functions, कोड के उस छोटे से हिस्से को डिप्लॉय करने के लिए है जो:

  • पूरे ऐप्लिकेशन का हिस्सा नहीं है
  • पूरे डेवलपमेंट स्टैक में ज़रूरी नहीं है
  • किसी ऐसे ऐप्लिकेशन या मोबाइल ऐप्लिकेशन के बैकएंड में हो जिसमें किसी एक चीज़ पर फ़ोकस किया गया हो

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

हमारा सैंपल App Engine ऐप्लिकेशन, माइग्रेशन से जुड़े सभी ट्यूटोरियल में शामिल किया गया है. यह एक छोटा ऐप्लिकेशन है, जिसमें बुनियादी फ़ंक्शन हैं, जो Cloud Functions की तरह ही काम करते हैं. इस ट्यूटोरियल में, Cloud Functions पर चलाने के लिए उस ऐप्लिकेशन में बदलाव करने का तरीका बताया गया है. App Engine के नज़रिए से देखा जाए, तो फ़ंक्शन, सभी ऐप्लिकेशन से आसान होते हैं. इसलिए, ऐप्लिकेशन को इस्तेमाल करना शुरू करना आसान (और तेज़) होना चाहिए. साथ ही, आपको इसमें "ओवरहेड" की ज़रूरत नहीं होनी चाहिए किया जा सकता है. इस माइग्रेशन में ये चरण शामिल हैं:

  • सेटअप/प्रीवर्क
  • कॉन्फ़िगरेशन फ़ाइलें हटाएं
  • ऐप्लिकेशन फ़ाइलों में बदलाव करें

3. सेटअप/प्रीवर्क

यह कोडलैब, मॉड्यूल 2 क्लाउड NDB App Engine सैंपल ऐप्लिकेशन के Python 3 वर्शन से शुरू होता है. ऐसा इसलिए, क्योंकि Cloud Functions, Python 2 के साथ काम नहीं करता है. सबसे पहले, अपना प्रोजेक्ट सेट अप करते हैं, कोड पाते हैं, और फिर बेसलाइन ऐप्लिकेशन डिप्लॉय करते हैं, ताकि यह पुष्टि हो सके कि कोड काम करना शुरू कर रहा है.

1. प्रोजेक्ट सेटअप करें

अगर आपने मॉड्यूल 2 कोडलैब पूरा कर लिया है (और उसे Python 3 में पोर्ट किया है), तो हमारा सुझाव है कि आप उसी प्रोजेक्ट (और कोड) का फिर से इस्तेमाल करें. इसके अलावा, नया प्रोजेक्ट बनाया जा सकता है या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल किया जा सकता है. पक्का करें कि प्रोजेक्ट में एक चालू बिलिंग खाता हो और उसमें App Engine की सेवा चालू हो.

2. बेसलाइन ऐप्लिकेशन का नमूना डाउनलोड करें

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

चाहे आप अपने या हमारे किसी एक का इस्तेमाल करें, हम Module 2 Python 3 कोड का इस्तेमाल करना शुरू करेंगे. यह मॉड्यूल 11 कोडलैब आपको हर चरण पर जाने की जानकारी देता है. इससे आपको एक कोड मिलता है, जो मॉड्यूल 11 रेपो फ़ोल्डर (FINISH) के कोड से मिलता-जुलता है.

Python 3 मॉड्यूल 2 की शुरुआती फ़ाइलों (आपकी या हमारी) की डायरेक्ट्री कुछ इस तरह दिखेगी:

$ ls
README.md               main.py                 templates
app.yaml                requirements.txt

3. (फिर से) बेसलाइन ऐप्लिकेशन डिप्लॉय करें

कार्रवाई से पहले, इन चरणों को पूरा करें:

  1. gcloud कमांड-लाइन टूल का इस्तेमाल करके, फिर से जानें
  2. gcloud app deploy के साथ सैंपल ऐप्लिकेशन को फिर से डिप्लॉय करें
  3. पुष्टि करना कि ऐप्लिकेशन बिना किसी समस्या के App Engine पर चल रहा है

इन चरणों को पूरा करने के बाद, इसे Cloud फ़ंक्शन में बदला जा सकता है.

4. कॉन्फ़िगरेशन फ़ाइलें हटाएं

app.yaml फ़ाइल एक App Engine आर्टफ़ैक्ट है, जिसका इस्तेमाल Cloud Functions के साथ नहीं किया जाता है. इसलिए, इसे अभी मिटाएं. अगर आप ऐसा नहीं करते हैं या ऐसा करना भूल जाते हैं, तो कोई नुकसान नहीं होगा, क्योंकि Cloud Functions इसका इस्तेमाल नहीं करता है. कॉन्फ़िगरेशन में यही सिर्फ़ यही बदलाव है, क्योंकि requirements.txt बिलकुल वैसा ही है जैसा मॉड्यूल 2 में है.

अगर आपको किसी Python 2 App Engine ऐप्लिकेशन को Python 3 में भी पोर्ट करना है, तो appengine_config.py के साथ-साथ अगर आपके पास lib फ़ोल्डर है, तो उसे मिटा दें. ये App Engine आर्टफ़ैक्ट हैं, जिन्हें Python 3 रनटाइम में इस्तेमाल नहीं किया गया.

5. ऐप्लिकेशन फ़ाइलों में बदलाव करें

main.py ऐप्लिकेशन में सिर्फ़ एक फ़ाइल होती है. इसलिए, Cloud Functions पर जाने के लिए इस फ़ाइल में सभी ज़रूरी बदलाव होते हैं.

आयात

हम सिर्फ़ फ़ंक्शन के साथ काम कर रहे हैं, इसलिए वेब ऐप्लिकेशन फ़्रेमवर्क की ज़रूरत नहीं है. हालांकि, सुविधा के लिए जब Python पर आधारित Cloud Functions कॉल किया जाता है, तो उन्हें अपने-आप एक अनुरोध ऑब्जेक्ट पास कर दिया जाता है, ताकि आपका कोड ज़रूरत के हिसाब से इस्तेमाल कर सके. (Cloud Functions टीम ने इसे आपके फ़ंक्शन को पास किए गए Flask अनुरोध ऑब्जेक्ट के तौर पर चुना है.)

वेब फ़्रेमवर्क, Cloud Functions लैंडस्केप का हिस्सा नहीं हैं. इसलिए, Flask से कोई डेटा इंपोर्ट नहीं किया जाता जब तक कि आपका ऐप्लिकेशन अन्य फ़्लास्क सुविधाओं का इस्तेमाल नहीं करता. यह सच है, क्योंकि फ़ंक्शन में बदलने के बाद भी टेंप्लेट रेंडरिंग हो रही है. इसका मतलब है कि flask.render_template() को कॉल करने की अब भी ज़रूरत है. इसलिए, इसे फ़्लास्क से इंपोर्ट किया जा रहा है. किसी वेब फ़्रेमवर्क का मतलब है कि Flask ऐप्लिकेशन को इंस्टैंशिएट करने की कोई ज़रूरत नहीं है. इसलिए, app = Flask(__name__) को मिटा दें. बदलाव लागू करने से पहले और बाद में, आपका कोड ऐसा दिखेगा:

पहले:

from flask import Flask, render_template, request
from google.cloud import ndb

app = Flask(__name__)
ds_client = ndb.Client()

बाद में:

from flask import render_template
from google.cloud import ndb

ds_client = ndb.Client()

अगर आप ऐप्लिकेशन ऑब्जेक्ट (app) या किसी दूसरे वेब फ़्रेमवर्क इन्फ़्रास्ट्रक्चर पर निर्भर हैं, तो आपको उन सभी डिपेंडेंसी को हल करना होगा. साथ ही, सही तरीके ढूंढने होंगे या उनका इस्तेमाल पूरी तरह से हटाना होगा या प्रॉक्सी को ढूंढना होगा. इसके बाद ही, अपने कोड को Cloud Function में बदला जा सकता है. नहीं तो, आपके लिए App Engine का इस्तेमाल करना या अपने ऐप्लिकेशन को Cloud Run के लिए कंटेनर बनाना बेहतर होगा

मुख्य हैंडलर फ़ंक्शन के हस्ताक्षर अपडेट करें

फ़ंक्शन हस्ताक्षर में ये बदलाव करने होंगे:

  1. ऐप्लिकेशन को Cloud Function में बदलने के बाद, अब फ़्लास्क का इस्तेमाल नहीं किया जाएगा. इसलिए, रूट सजाने वाले टूल हटा दें.
  2. Cloud Functions, फ़्लास्क Request ऑब्जेक्ट में पैरामीटर के तौर पर अपने-आप पास हो जाता है, इसलिए इसके लिए एक वैरिएबल बनाएं. अपने सैंपल ऐप्लिकेशन में, हम इसे request कहेंगे.
  3. डिप्लॉय किए गए Cloud Functions को नाम देना ज़रूरी है. हमारे मुख्य हैंडलर को App Engine में सही तरीके से root() नाम दिया गया, ताकि यह बताया जा सके कि यह क्या था (रूट ऐप्लिकेशन हैंडलर). Cloud फ़ंक्शन के तौर पर, उस नाम का इस्तेमाल करना ज़्यादा सही नहीं है. इसके बजाय, हम visitme नाम से Cloud Function डिप्लॉय करेंगे. इसलिए, इसका इस्तेमाल Python फ़ंक्शन के नाम के तौर पर भी करें. इसी तरह, मॉड्यूल 4 और 5 में, हमने Cloud Run सेवा को visitme नाम भी दिया है.

इन अपडेट से पहले और बाद की बातें यहां दी गई हैं:

पहले:

@app.route('/')
def root():
    'main application (GET) handler'
    store_visit(request.remote_addr, request.user_agent)
    visits = fetch_visits(10)
    return render_template('index.html', visits=visits)

बाद में:

def visitme(request):
    'main application (GET) handler'
    store_visit(request.remote_addr, request.user_agent)
    visits = fetch_visits(10)
    return render_template('index.html', visits=visits)

इसके बाद, सभी ज़रूरी अपडेट पूरे होते हैं. ध्यान दें कि किए गए बदलावों से सिर्फ़ ऐप्लिकेशन के "इन्फ़्रास्ट्रक्चर" पर असर पड़ा है कोड. मुख्य ऐप्लिकेशन कोड में किसी बदलाव की ज़रूरत नहीं है और न ही ऐप्लिकेशन की किसी भी सुविधा में कोई बदलाव किया गया है. इस पॉइंट को समझाने के लिए, किए गए बदलावों को तस्वीरों के ज़रिए यहां दिखाया गया है:

668f30e3865b27a9.png

लोकल डेवलपमेंट ऐंड टेस्टिंग

App Engine में dev_appserver.py लोकल डेवलपमेंट सर्वर होता है, जबकि Cloud Functions का फ़ंक्शन फ़्रेमवर्क होता है. इस फ़्रेमवर्क का इस्तेमाल करके, ऐप्लिकेशन को स्थानीय तौर पर डेवलप और टेस्ट किया जा सकता है. आपके कोड को Cloud Functions पर डिप्लॉय किया जा सकता है. हालांकि, इसे Compute Engine, Cloud Run जैसे अन्य कंप्यूट प्लैटफ़ॉर्म या यहां तक कि कंपनी की इमारत या हाइब्रिड क्लाउड सिस्टम में भी डिप्लॉय किया जा सकता है. ये सिस्टम Knative के साथ काम करते हैं. फ़ंक्शन फ़्रेमवर्क के अन्य लिंक नीचे देखें.

6. बनाएं और डिप्लॉय करें

Cloud Functions में डिप्लॉयमेंट, App Engine से थोड़ा अलग है. requirements.txt के बाहर किसी भी कॉन्फ़िगरेशन फ़ाइल का इस्तेमाल नहीं किया जाता है. इसलिए, कोड के बारे में ज़्यादा जानकारी कमांड-लाइन में दी जानी चाहिए. इस निर्देश की मदद से, Python 3.10 में चल रहे एचटीटीपी से ट्रिगर होने वाले अपने नए Cloud फ़ंक्शन को डिप्लॉय करें:

$ gcloud functions deploy visitme --runtime python310 --trigger-http --allow-unauthenticated

आउटपुट इस तरह का हो सकता है:

Deploying function (may take a while - up to 2 minutes)...⠛
For Cloud Build Logs, visit: https://console.cloud.google.com/cloud-build/builds;region=REGION/f5f6fc81-1bb3-4cdb-8bfe?project=PROJECT_ID
Deploying function (may take a while - up to 2 minutes)...done.
availableMemoryMb: 256
buildId: f5f6fc81-1bb3-4cdb-8bfe
buildName: projects/PROJECT_ID/locations/REGION/builds/f5f6fc81-1bb3-4cdb-8bfe
dockerRegistry: CONTAINER_REGISTRY
entryPoint: visitme
httpsTrigger:
  securityLevel: SECURE_OPTIONAL
  url: https://REGION-PROJECT_ID.cloudfunctions.net/visitme
ingressSettings: ALLOW_ALL
labels:
  deployment-tool: cli-gcloud
name: projects/PROJECT_ID/locations/REGION/functions/visitme
runtime: python310
serviceAccountEmail: PROJECT_ID@appspot.gserviceaccount.com
sourceUploadUrl: https://storage.googleapis.com/uploads-853031211983.REGION.cloudfunctions.appspot.com/8c923758-cee8-47ce-8e97-5720a5301c34.zip
status: ACTIVE
timeout: 60s
updateTime: '2022-05-16T18:28:06.153Z'
versionId: '8'

जब आपका फ़ंक्शन डिप्लॉय हो जाए, तो डिप्लॉयमेंट आउटपुट में मिले यूआरएल का इस्तेमाल करें और अपने ऐप्लिकेशन पर जाएं. यूआरएल इस तरह का है: REGION-PROJECT_ID.cloudfunctions.net/visitme. आउटपुट वैसा ही होना चाहिए जब आपने उसे App Engine में पहले डिप्लॉय किया था:

2732ae9218f011a2.png

सीरीज़ के ज़्यादातर कोडलैब और वीडियो की तरह, बेसलाइन ऐप्लिकेशन की सुविधाओं में कोई बदलाव नहीं होता है. इसका मकसद, मॉडर्नाइज़ेशन की एक तकनीक लागू करना और ऐप्लिकेशन को पहले की तरह काम करने के लिए उपलब्ध कराना है, लेकिन यह नए इन्फ़्रास्ट्रक्चर की मदद से काम करता हो. उदाहरण के लिए, App Engine की किसी पुरानी सेवा से उसके बदले क्लाउड स्टैंडअलोन प्रॉडक्ट पर माइग्रेट करना या इस ट्यूटोरियल के मामले में, किसी ऐप्लिकेशन को Google Cloud के बिना सर्वर वाले किसी दूसरे प्लैटफ़ॉर्म पर ले जाना.

7. खास जानकारी/क्लीनअप

इस छोटे App Engine ऐप्लिकेशन को Cloud फ़ंक्शन में बदलने के लिए बधाई! इस्तेमाल का एक और सही उदाहरण: एक बड़े मोनोलिथिक App Engine ऐप्लिकेशन को माइक्रोसर्विस की सीरीज़ में बांटना. हर ऐप्लिकेशन को Cloud Function के तौर पर इस्तेमाल किया जाता है. यह तकनीक के विकास की यह ज़्यादा आधुनिक तकनीक है. इसलिए, "प्लग-ऐंड-प्ले" की सुविधा कॉम्पोनेंट (ला " JAM स्टैक") स्टाइल. इससे मिक्सिंग और मैचिंग की सुविधा मिलती है और कोड का फिर से इस्तेमाल किया जा सकता है. ये दो लक्ष्य हैं. हालांकि, इसका एक और फ़ायदा यह है कि इन माइक्रोसर्विस को समय के साथ डीबग करना जारी रखा जाता है. इसका मतलब है कि कोड को स्थायी कोड बनाया जा सकता है और रखरखाव के लिए कम खर्च किया जा सकता है.

व्यवस्थित करें

इस कोडलैब को पूरा करने के बाद, बिलिंग से बचने के लिए, Module 2 App Engine ऐप्लिकेशन को कुछ समय या हमेशा के लिए बंद किया जा सकता है. App Engine प्लैटफ़ॉर्म का कोटा मुफ़्त है. इसलिए, जब तक आप इसका इस्तेमाल करने के टीयर में बने रहेंगे, तब तक आपसे कोई शुल्क नहीं लिया जाएगा. यही बात डेटास्टोर पर भी लागू होती है; ज़्यादा जानकारी के लिए, Cloud Datastore की कीमत वाला पेज देखें.

App Engine और Cloud Functions जैसे प्लैटफ़ॉर्म पर डिप्लॉय करने पर, बनाने और सेव करने का मामूली खर्च आता है. कुछ देशों/इलाकों में, Cloud Storage की तरह Cloud Build का अपना अलग कोटा होता है. बिल्ड उस कोटा का कुछ हिस्सा इस्तेमाल करता है. संभावित लागत को कम करने के लिए, स्टोरेज के इस्तेमाल का ध्यान रखें. खास तौर पर तब, जब आपके इलाके में ऐसा कोई फ़्री टीयर न हो.

माफ़ करें, Cloud Functions में "बंद" नहीं है सुविधा. अपने कोड का बैकअप लें और बस फ़ंक्शन को मिटा दें. इसे बाद में उसी नाम से दोबारा डिप्लॉय किया जा सकता है. हालांकि, अगर आपको किसी दूसरे माइग्रेशन कोडलैब का इस्तेमाल नहीं करना है और सब कुछ पूरी तरह से मिटाना है, तो अपने क्लाउड प्रोजेक्ट बंद कर दें.

अगले चरण

इस ट्यूटोरियल के अलावा, आपके देखने के लिए अन्य माइग्रेशन मॉड्यूल में Cloud Run के लिए आपके App Engine ऐप्लिकेशन को कंटेनर बनाना शामिल है. मॉड्यूल 4 और मॉड्यूल 5 कोडलैब के लिंक देखें:

  • मॉड्यूल 4: Docker की मदद से Cloud Run पर माइग्रेट करना
  • Docker के साथ Cloud Run पर चलाने के लिए, अपने ऐप्लिकेशन को कंटेनर में रखें
  • यह माइग्रेशन आपको Python 2 पर बने रहने की अनुमति देता है.
  • मॉड्यूल 5: Cloud Buildpack के साथ Cloud Run पर माइग्रेट करना
  • Cloud Buildpack की मदद से, अपने ऐप्लिकेशन को Cloud Run पर चलाने के लिए कंटेनर बनाएं
  • आपको Docker, कंटेनर या Dockerfile के बारे में कुछ भी जानने की ज़रूरत नहीं है.
  • यह ज़रूरी है कि आपका ऐप्लिकेशन पहले से Python 3 पर माइग्रेट किया गया हो (Buildpack Python 2 के साथ काम नहीं करते)

कई दूसरे मॉड्यूल, डेवलपर को यह दिखाने पर फ़ोकस करते हैं कि वे App Engine की बंडल की गई सेवाओं से, Cloud स्टैंडअलोन की जगह पर माइग्रेट कैसे करें:

  • मॉड्यूल 2: App Engine ndb से Cloud NDB पर माइग्रेट करें
  • मॉड्यूल 7-9: App Engine टास्क सूची से पुश टास्क को क्लाउड टास्क में माइग्रेट करें
  • मॉड्यूल 12-13: App Engine Memcache से Cloud Memorystore में माइग्रेट करना
  • मॉड्यूल 15-16: App Engine Blobstore से Cloud Storage में माइग्रेट करना
  • मॉड्यूल 18-19: App Engine टास्क सूची (टास्क पुल करें) से Cloud Pub/Sub में माइग्रेट करें

अगर कंटेनराइज़ेशन आपके ऐप्लिकेशन डेवलपमेंट वर्कफ़्लो का हिस्सा बन गया है, खास तौर पर जब उसमें CI/CD (लगातार इंटिग्रेशन/लगातार डिलीवरी या डिप्लॉयमेंट) पाइपलाइन शामिल हो, तो Cloud Functions के बजाय Cloud Run पर माइग्रेट करें. अपने ऐप्लिकेशन को Docker के साथ कंटेनर में लाने के लिए, मॉड्यूल 4 देखें. इसके अलावा, कंटेनर, Docker जानकारी या Dockerfile के बिना ऐसा करने के लिए मॉड्यूल 5 पर जाएं. चाहे Cloud Functions हो या Cloud Run, बिना सर्वर वाले किसी दूसरे प्लैटफ़ॉर्म पर स्विच करना ज़रूरी नहीं है. हमारा सुझाव है कि कोई भी बदलाव करने से पहले, अपने ऐप्लिकेशन के लिए सबसे अच्छे विकल्प और इस्तेमाल के उदाहरण देखें.

आप आगे चाहे किसी माइग्रेशन मॉड्यूल पर जाएं, सर्वरलेस माइग्रेशन स्टेशन का पूरा कॉन्टेंट (कोडलैब, वीडियो, सोर्स कोड [जब उपलब्ध हो]) उसके ओपन सोर्स रेपो से ऐक्सेस किया जा सकता है. डेटा स्टोर करने की जगह के README में, यह भी बताया गया है कि किस माइग्रेशन पर विचार करना चाहिए. साथ ही, इसमें किसी "ऑर्डर" के बारे में भी बताया गया है. में तय किया गया है.

8. अन्य संसाधन

App Engine माइग्रेशन मॉड्यूल कोडलैब से जुड़ी समस्याएं/सुझाव

अगर आपको इस कोडलैब के साथ कोई समस्या मिलती है, तो कृपया आवेदन करने से पहले अपनी समस्या का पता लगाएं. खोजने और नई समस्याएं बनाने के लिए लिंक:

माइग्रेशन के लिए संसाधन

यहां दी गई टेबल में, मॉड्यूल 8 (START) और मॉड्यूल 9 (FINISH) के रेपो फ़ोल्डर के लिंक दिए गए हैं. उन्हें सभी App Engine कोडलैब माइग्रेशन के लिए रेपो से भी ऐक्सेस किया जा सकता है, जिसका क्लोन बनाया जा सकता है या किसी ZIP फ़ाइल को डाउनलोड किया जा सकता है.

Codelab

Python 3

मॉड्यूल 2

कोड

मॉड्यूल 11

कोड

ऑनलाइन संसाधन

नीचे कुछ ऑनलाइन संसाधन दिए गए हैं, जो इस ट्यूटोरियल के लिए काम के हो सकते हैं:

App Engine

Cloud Functions

क्लाउड से जुड़ी अन्य जानकारी

वीडियो

लाइसेंस

इस काम को क्रिएटिव कॉमंस एट्रिब्यूशन 2.0 जेनरिक लाइसेंस के तहत लाइसेंस मिला है.