1. সংক্ষিপ্ত বিবরণ
সার্ভারলেস মাইগ্রেশন স্টেশন সিরিজের কোডল্যাব (স্ব-গতিসম্পন্ন, হাতে-কলমে টিউটোরিয়াল) এবং সম্পর্কিত ভিডিওগুলির লক্ষ্য হল গুগল ক্লাউড সার্ভারলেস ডেভেলপারদের তাদের অ্যাপ্লিকেশনগুলিকে আধুনিকীকরণে সাহায্য করা, এক বা একাধিক মাইগ্রেশনের মাধ্যমে, প্রাথমিকভাবে লিগ্যাসি পরিষেবাগুলি থেকে দূরে সরে যাওয়ার মাধ্যমে। এটি আপনার অ্যাপগুলিকে আরও পোর্টেবল করে তোলে এবং আপনাকে আরও বিকল্প এবং নমনীয়তা দেয়, যা আপনাকে ক্লাউড পণ্যের বিস্তৃত পরিসরের সাথে একীভূত করতে এবং অ্যাক্সেস করতে এবং আরও সহজেই নতুন ভাষার রিলিজে আপগ্রেড করতে সক্ষম করে। প্রাথমিকভাবে প্রাথমিক ক্লাউড ব্যবহারকারীদের উপর, মূলত অ্যাপ ইঞ্জিন (স্ট্যান্ডার্ড এনভায়রনমেন্ট) ডেভেলপারদের উপর ফোকাস করার সময়, এই সিরিজটি ক্লাউড ফাংশন এবং ক্লাউড রানের মতো অন্যান্য সার্ভারলেস প্ল্যাটফর্ম, অথবা প্রযোজ্য ক্ষেত্রে অন্য কোথাও অন্তর্ভুক্ত করার জন্য যথেষ্ট বিস্তৃত।
পূর্বে, ডেভেলপারদের অ্যাপ ইঞ্জিনের লিগ্যাসি "বান্ডেলড সার্ভিস" যেমন ডেটাস্টোর এবং মেমক্যাশ থেকে মাইগ্রেট করতে হত, যা ল্যাঙ্গুয়েজ ভার্সন আপগ্রেড করার আগে পরপর দুটি সম্ভাব্য চ্যালেঞ্জিং প্রচেষ্টা ছিল। দ্বিতীয় প্রজন্মের অ্যাপ ইঞ্জিন পরিষেবায় অনেকগুলি মূল বান্ডেলড সার্ভিস উপলব্ধ করে, ডেভেলপাররা এখন তাদের অ্যাপগুলিকে সর্বশেষ রানটাইমে পোর্ট করতে পারে এবং (বেশিরভাগ) বান্ডেলড সার্ভিস ব্যবহার চালিয়ে যেতে পারে। এই কোডল্যাব আপনাকে Python 2 থেকে 3 তে একটি নমুনা অ্যাপ আপগ্রেড করার মাধ্যমে নিয়ে যায় এবং ডেটাস্টোর বান্ডেলড সার্ভিসের ব্যবহার বজায় রাখে (অ্যাপ ইঞ্জিন NDB লাইব্রেরির মাধ্যমে)। বেশিরভাগ বান্ডেলড সার্ভিস ব্যবহারের জন্য কোডে শুধুমাত্র একটি ছোটখাটো আপডেটের প্রয়োজন হয় যা এই টিউটোরিয়ালে কভার করা হবে, তবে আরও কিছু আছে যা আরও ব্যাপক পরিবর্তনের প্রয়োজন; এগুলি "পার্ট 2", একটি ফলো-আপ মডিউল এবং কোডল্যাব দ্বারা কভার করা হবে।
তুমি শিখবে কিভাবে
- পাইথন ২ থেকে ৩ পর্যন্ত পোর্ট স্যাম্পল অ্যাপ ইঞ্জিন অ্যাপ
- অ্যাপ ইঞ্জিন SDK অন্তর্ভুক্ত করার জন্য অ্যাপ কনফিগারেশন আপডেট করুন
- পাইথন ৩ এর মতো দ্বিতীয় প্রজন্মের রানটাইমে বান্ডেলড পরিষেবা সমর্থনকারী অ্যাপে SDK কোড যোগ করুন।
তোমার যা লাগবে
- একটি সক্রিয় GCP বিলিং অ্যাকাউন্ট সহ একটি Google ক্লাউড প্রকল্প
- পাইথনের মৌলিক দক্ষতা
- সাধারণ লিনাক্স কমান্ডের কার্যকরী জ্ঞান
- অ্যাপ ইঞ্জিন অ্যাপ তৈরি এবং স্থাপনের প্রাথমিক জ্ঞান।
- একটি কার্যকরী মডিউল ১ অ্যাপ ইঞ্জিন অ্যাপ ( এর কোডল্যাব [প্রস্তাবিত] সম্পূর্ণ করুন অথবা রেপো থেকে অ্যাপটি অনুলিপি করুন)
জরিপ
আপনি এই টিউটোরিয়ালটি কীভাবে ব্যবহার করবেন?
পাইথনের সাথে আপনার অভিজ্ঞতাকে আপনি কীভাবে মূল্যায়ন করবেন?
গুগল ক্লাউড পরিষেবা ব্যবহারের অভিজ্ঞতাকে আপনি কীভাবে মূল্যায়ন করবেন?
2. পটভূমি
মূল অ্যাপ ইঞ্জিন পরিষেবাটি ২০০৮ সালে চালু হয়েছিল এবং ডেভেলপারদের বিশ্বব্যাপী অ্যাপ্লিকেশন তৈরি এবং স্থাপনের সুবিধার্থে লিগ্যাসি এপিআই (বর্তমানে বান্ডলড সার্ভিসেস নামে পরিচিত) এর একটি সেট নিয়ে এসেছিল। এই পরিষেবাগুলির মধ্যে রয়েছে ডেটাস্টোর, মেমক্যাশ এবং টাস্ক কিউ। সুবিধাজনক হলেও, ব্যবহারকারীরা অ্যাপ ইঞ্জিনের সাথে সংযুক্ত মালিকানাধীন এপিআই ব্যবহার করার সময় তাদের অ্যাপগুলির পোর্টেবিলিটি নিয়ে উদ্বিগ্ন হয়ে পড়েন এবং তাদের অ্যাপগুলিকে আরও পোর্টেবল করতে চান। এর সাথে মিলিত হয়ে এই বান্ডলড পরিষেবাগুলির অনেকগুলি তাদের নিজস্ব স্বতন্ত্র ক্লাউড পণ্যে পরিণত হওয়ার কারণে অ্যাপ ইঞ্জিন টিম ২০১৮ সালে পরবর্তী প্রজন্মের প্ল্যাটফর্মটি চালু করতে বাধ্য হয়।
আজকের দিনে Python 2 ডেভেলপাররা Python 3 তে আপগ্রেড করতে আগ্রহী। বান্ডেলড পরিষেবা ব্যবহার করে এমন একটি 2.x অ্যাপকে তাদের অ্যাপগুলিকে 3.x তে পোর্ট করার আগে সেই পরিষেবাগুলি থেকে দূরে স্থানান্তর করতে হত, যা বারবার জোরপূর্বক মাইগ্রেশনের একটি জোড়া প্রতিনিধিত্ব করে, যা সম্ভাব্য চ্যালেঞ্জিংও হতে পারে। এই রূপান্তরে সহায়তা করার জন্য, অ্যাপ ইঞ্জিন টিম 2021 সালের শরৎকালে অতীতের একটি "ওয়ার্মহোল" চালু করে , যা পরবর্তী প্রজন্মের রানটাইমে চলমান অ্যাপগুলিকে সেই বান্ডেলড পরিষেবাগুলির অনেকগুলি অ্যাক্সেস করার অনুমতি দেয়। যদিও এই রিলিজে মূল রানটাইমে উপলব্ধ সমস্ত পরিষেবা অন্তর্ভুক্ত নয়, ডেটাস্টোর, টাস্ক কিউ এবং মেমক্যাশের মতো প্রধান খেলোয়াড়রা উপলব্ধ ।
এই কোডল্যাবটি আপনার অ্যাপটিকে পাইথন 3 এ আপগ্রেড করার জন্য প্রয়োজনীয় পরিবর্তনগুলি প্রদর্শন করে এবং বান্ডলড পরিষেবার ব্যবহার সংরক্ষণ করে। লক্ষ্য হল আপনার অ্যাপগুলিকে সর্বশেষ রানটাইমে চালানো, যাতে আপনি বান্ডলড পরিষেবাগুলি থেকে ক্লাউড স্ট্যান্ডেলোন সমতুল্য বা তৃতীয় পক্ষের বিকল্পগুলিতে আপনার নিজস্ব টাইমলাইনে মাইগ্রেট করতে পারেন, এটি 3.x আপগ্রেডে ব্লকার না হয়ে। যদিও বান্ডলড পরিষেবাগুলি থেকে দূরে স্থানান্তরিত করার আর প্রয়োজন নেই, এটি করার ফলে আপনার অ্যাপগুলি কোথায় হোস্ট করা যেতে পারে সে বিষয়ে আরও পোর্টেবিলিটি এবং নমনীয়তা পাওয়া যায়, যার মধ্যে এমন প্ল্যাটফর্মগুলিতে স্থানান্তর করা অন্তর্ভুক্ত যা আপনার কাজের চাপকে আরও ভালভাবে পরিবেশন করতে পারে, অথবা কেবল অ্যাপ ইঞ্জিনে থাকাকালীন আরও আধুনিক ভাষা রিলিজে আপগ্রেড করা যেমন বর্ণনা করা হয়েছে।
মডিউল ১ পাইথন ২ নমুনা অ্যাপটি অ্যাপ ইঞ্জিন এনডিবি-র মাধ্যমে ডেটাস্টোর বান্ডেলড পরিষেবা ব্যবহার করে। অ্যাপটি ইতিমধ্যেই ওয়েবঅ্যাপ২ থেকে ফ্লাস্কে ফ্রেমওয়ার্ক স্থানান্তরিত করেছে— মডিউল ১ কোডল্যাবে সম্পন্ন হয়েছে—কিন্তু এর ডেটাস্টোর ব্যবহার অক্ষত রয়েছে।
এই টিউটোরিয়ালে নিম্নলিখিত ধাপগুলি রয়েছে:
- সেটআপ/প্রিওয়ার্ক
- কনফিগারেশন আপডেট করুন
- অ্যাপ্লিকেশন কোড পরিবর্তন করুন
৩. সেটআপ/প্রিওয়ার্ক
এই বিভাগটি ব্যাখ্যা করে কিভাবে:
- আপনার ক্লাউড প্রোজেক্ট সেট আপ করুন
- বেসলাইন নমুনা অ্যাপ পান
- (পুনরায়) বেসলাইন অ্যাপ স্থাপন এবং যাচাই করুন
এই ধাপগুলি নিশ্চিত করে যে আপনি কার্যকরী কোড দিয়ে শুরু করছেন।
১. সেটআপ প্রকল্প
যদি আপনি মডিউল ১ কোডল্যাব সম্পন্ন করে থাকেন, তাহলে আমরা সেই একই প্রকল্প (এবং কোড) পুনরায় ব্যবহার করার পরামর্শ দিচ্ছি। বিকল্পভাবে, একটি নতুন ক্লাউড প্রকল্প তৈরি করুন অথবা অন্য একটি বিদ্যমান প্রকল্প পুনরায় ব্যবহার করুন। নিশ্চিত করুন যে প্রকল্পটিতে একটি সক্রিয় বিলিং অ্যাকাউন্ট আছে যেখানে অ্যাপ ইঞ্জিন পরিষেবা সক্রিয় করা হয়েছে।
2. বেসলাইন নমুনা অ্যাপ পান
এই কোডল্যাবের পূর্বশর্তগুলির মধ্যে একটি হল একটি কার্যকরী মডিউল 1 অ্যাপ ইঞ্জিন অ্যাপ থাকা: মডিউল 1 কোডল্যাবটি সম্পূর্ণ করুন (প্রস্তাবিত) অথবা রেপো থেকে মডিউল 1 অ্যাপটি অনুলিপি করুন। আপনি আপনার বা আমাদের ব্যবহার করুন না কেন, মডিউল 1 কোডটিই হল যেখানে আমরা "START" করব। এই কোডল্যাবটি আপনাকে প্রতিটি ধাপে নিয়ে যাবে, এবং শেষ করবে এমন কোড দিয়ে যা মডিউল 7 রেপো ফোল্ডার "FINISH"-এর অনুরূপ।
- শুরু: মডিউল ১ ফোল্ডার (পাইথন ২)
- শেষ: মডিউল ১বি ফোল্ডার (পাইথন ৩)
- সম্পূর্ণ রেপো ( জিপ ফাইল ক্লোন বা ডাউনলোড করতে)
আপনি যে মডিউল ১ অ্যাপই ব্যবহার করুন না কেন, ফোল্ডারটি নিচের মতো দেখতে হবে, সম্ভবত একটি lib ফোল্ডারও থাকবে:
$ ls README.md appengine_config.py requirements.txt app.yaml main.py templates
৩. (পুনরায়) বেসলাইন অ্যাপ স্থাপন করুন
মডিউল ১ অ্যাপটি (পুনরায়) স্থাপন করতে নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:
- যদি
libফোল্ডার থাকে তাহলে সেটি মুছে ফেলুন এবংlibপুনরায় পূরণ করতেpip install -t lib -r requirements.txtলিখুন। যদি আপনার Python 2 এবং 3 উভয়ই ইনস্টল করা থাকে তবে আপনাকেpip2কমান্ড ব্যবহার করতে হতে পারে। - নিশ্চিত করুন যে আপনি
gcloudকমান্ড-লাইন টুলটি ইনস্টল এবং আরম্ভ করেছেন এবং এর ব্যবহার পর্যালোচনা করেছেন। - আপনার ক্লাউড প্রজেক্টটি
gcloud config set projectদিয়ে সেট করুন, যদি আপনি প্রতিটিgcloudকমান্ডের সাথে আপনারPROJECT_IDলিখতে না চান, তাহলে প্রজেক্টPROJECT_IDসেট করুন। -
gcloud app deployমাধ্যমে নমুনা অ্যাপটি ডিপ্লয় করুন - মডিউল ১ অ্যাপটি সাম্প্রতিক ভিজিটগুলি প্রদর্শনে কোনও সমস্যা ছাড়াই প্রত্যাশা অনুযায়ী চলছে কিনা তা নিশ্চিত করুন (নীচে চিত্রিত)

৪. কনফিগারেশন আপডেট করুন
একবার আপনি এই ধাপগুলি সফলভাবে সম্পাদন করার পরে এবং আপনার ওয়েব অ্যাপটি কাজ করছে দেখতে পেলে, আপনি কনফিগারেশন দিয়ে শুরু করে এই অ্যাপটি পাইথন 3 এ পোর্ট করতে প্রস্তুত।
requirements.txt-এ SDK যোগ করুন
অ্যাপ ইঞ্জিন পাইথন ৩ রানটাইম থার্ড-পার্টি লাইব্রেরি ব্যবহারের জন্য ওভারহেড উল্লেখযোগ্যভাবে কমিয়ে দেয়। যা প্রয়োজন তা হলো requirements.txt এ সেগুলো তালিকাভুক্ত করা। পাইথন ৩ এ বান্ডেলড সার্ভিস ব্যবহার করতে, অ্যাপ ইঞ্জিন SDK প্যাকেজ, appengine-python-standard যোগ করুন। SDK প্যাকেজটি মডিউল ১ থেকে Flask-এ যোগ করে:
flask
appengine-python-standard
app.yaml আপডেট করুন
আপনার app.yaml ফাইলে কনফিগারেশন পরিবর্তনগুলি প্রয়োগ করতে নীচের পদক্ষেপগুলি অনুসরণ করুন:
-
runtimeনির্দেশিকাটি সমর্থিত পাইথন 3 রিলিজ দিয়ে প্রতিস্থাপন করুন; উদাহরণস্বরূপ, পাইথন 3.10 এর জন্যpython310নির্দিষ্ট করুন। - পাইথন ৩-এ
threadsafeএবংapi_versionউভয় নির্দেশিকাই ব্যবহার করা হয়নি, তাই এগুলি মুছে ফেলুন। - এই অ্যাপটিতে শুধুমাত্র স্ক্রিপ্ট হ্যান্ডলার থাকায়
handlersবিভাগটি সম্পূর্ণরূপে মুছে ফেলুন। যদি আপনার অ্যাপে স্ট্যাটিক ফাইল হ্যান্ডলার থাকে, তাহলেhandlersসেগুলি অক্ষত রাখুন। - Python 3 রানটাইম Python 2 রানটাইমের মতো বিল্ট-ইন থার্ড-পার্টি লাইব্রেরি সমর্থন করে না। যদি আপনার অ্যাপের
app.yamlএlibrariesবিভাগ থাকে, তাহলে পুরো বিভাগটি মুছে ফেলুন। (প্রয়োজনীয় প্যাকেজগুলি শুধুমাত্রrequirements.txtএ তালিকাভুক্ত করতে হবে, যেমনটি অ-বিল্ট-ইন লাইব্রেরি।) আমাদের নমুনা অ্যাপেlibrariesবিভাগ নেই, তাই পরবর্তী ধাপে যান। - এটি ব্যবহার করার জন্য
trueতে সেট করা একটিapp_engine_apisনির্দেশিকা তৈরি করুন—এটি উপরেরrequirements.txtএ App Engine SDK প্যাকেজ যোগ করার সাথে সম্পর্কিত।
app.yaml এ প্রয়োজনীয় পরিবর্তনগুলির সারসংক্ষেপ:
আগে:
runtime: python27
threadsafe: yes
api_version: 1
handlers:
- url: /.*
script: main.app
পরে:
runtime: python310
app_engine_apis: true
অন্যান্য কনফিগারেশন ফাইল
যেহেতু সকল থার্ড-পার্টি প্যাকেজ শুধুমাত্র requirements.txt তে তালিকাভুক্ত করতে হবে, যদি না appengine_config.py তে বিশেষ কিছু থাকে, তাহলে এটির প্রয়োজন নেই, তাই এটি মুছে ফেলুন। একইভাবে, যেহেতু সকল থার্ড-পার্টি লাইব্রেরি বিল্ড প্রক্রিয়ার সময় স্বয়ংক্রিয়ভাবে ইনস্টল হয়ে যায়, তাই সেগুলি কপি বা ভেন্ড করার কোন প্রয়োজন নেই, অর্থাৎ আর কোন pip install কমান্ড বা lib ফোল্ডার নেই, তাই এটি মুছে ফেলুন। সংক্ষেপে:
-
appengine_config.pyফাইলটি মুছুন -
libফোল্ডারটি মুছুন
এটি সমস্ত প্রয়োজনীয় কনফিগারেশন পরিবর্তনগুলি শেষ করে।
৫. অ্যাপ্লিকেশন কোড পরিবর্তন করুন
পাইথন ৩ রানটাইম পরিবেশে উপলব্ধ বেশিরভাগ বান্ডেলড পরিষেবা অ্যাক্সেস করার জন্য main.py তে ওয়েব সার্ভার গেটওয়ে ইন্টারফেস (WSGI) অ্যাপ্লিকেশন অবজেক্টটি মোড়ানো একটি ছোট কোডের প্রয়োজন। র্যাপার ফাংশনটি হল google.appengine.api.wrap_wsgi_app() , এবং আপনি এটি আমদানি করে এবং এটি দিয়ে আপনার WSGI অবজেক্টটি মোড়ানোর মাধ্যমে এটি ব্যবহার করতে পারেন। main.py তে Flask এর জন্য প্রয়োজনীয় আপডেট প্রতিফলিত করতে নীচের পরিবর্তনগুলি করুন:
আগে:
from flask import Flask, render_template, request
from google.appengine.ext import ndb
app = Flask(__name__)
পরে:
from flask import Flask, render_template, request
from google.appengine.api import wrap_wsgi_app
from google.appengine.ext import ndb
app = Flask(__name__)
app.wsgi_app = wrap_wsgi_app(app.wsgi_app)
অন্যান্য পাইথন ফ্রেমওয়ার্কের জন্য WSGI-র্যাপিং উদাহরণের ডকুমেন্টেশন দেখুন।
এই উদাহরণটি আপনার অ্যাপকে Python 3-এর বেশিরভাগ বান্ডেলড পরিষেবাগুলিতে অ্যাক্সেস দেওয়ার জন্য কাজ করলেও, Blobstore এবং Mail-এর মতো অন্যান্য পরিষেবাগুলির জন্য অতিরিক্ত কোডের প্রয়োজন হয়। আমরা অন্য একটি মাইগ্রেশন মডিউলে সেই নমুনাগুলি কভার করব।
এর ফলে মডিউল ১ নমুনা অ্যাপে অ্যাপ ইঞ্জিন বান্ডেলড পরিষেবার ব্যবহার যোগ করার জন্য প্রয়োজনীয় সমস্ত পরিবর্তন শেষ হয়। অ্যাপ্লিকেশনটি ইতিমধ্যেই পাইথন ২ এবং ৩ সামঞ্জস্যপূর্ণ, তাই কনফিগারেশনে আপনি ইতিমধ্যে যা করেছেন তা ছাড়া এটিকে পাইথন ৩-এ পোর্ট করার জন্য কোনও অতিরিক্ত পরিবর্তন নেই। চূড়ান্ত পদক্ষেপ: এই পরিবর্তিত অ্যাপটিকে পরবর্তী প্রজন্মের অ্যাপ ইঞ্জিন পাইথন ৩ রানটাইমে স্থাপন করুন এবং আপডেটগুলি সফল হয়েছে তা নিশ্চিত করুন।
৬. সারাংশ/পরিষ্কারকরণ
এই বিভাগটি অ্যাপটি স্থাপন করে, এটি উদ্দেশ্য অনুসারে কাজ করে এবং যেকোনো প্রতিফলিত আউটপুটে যাচাই করে এই কোডল্যাবটি শেষ করে। অ্যাপ যাচাইকরণের পরে, যেকোনো পরিষ্কার-পরিচ্ছন্নতা সম্পাদন করুন এবং পরবর্তী পদক্ষেপগুলি বিবেচনা করুন।
অ্যাপ্লিকেশন স্থাপন এবং যাচাই করুন
gcloud app deploy দিয়ে Python 3 অ্যাপটি স্থাপন করুন এবং নিশ্চিত করুন যে অ্যাপটি Python 2-এর মতোই কাজ করে। কোনও কার্যকারিতা পরিবর্তন হয় না, তাই আউটপুটটি Module 1 অ্যাপের মতোই হওয়া উচিত:

চূড়ান্ত নোট
- মডিউল ১বি ফোল্ডারে যা আছে তার সাথে আপনার যা আছে তার তুলনা করুন (শেষ)। যদি আপনি পথে কোনও ভুল করে থাকেন এবং প্রয়োজনে সামঞ্জস্য করুন।
- যদি আপনার অ্যাপটি এখনও
webapp2ব্যবহার করে, তাহলে এই পৃষ্ঠায় মডিউল 0main.pyএর সাথে Module 1bmain.pyপাশাপাশি তুলনা করুন, তাহলেwebapp2থেকে Flask এ মাইগ্রেট করার পদ্ধতি শিখতে Module 1 codelab ব্যবহার করুন।
আপনার Python 2 অ্যাপ ইঞ্জিন অ্যাপগুলিকে Python 3 তে পোর্ট করার প্রথম পদক্ষেপ নেওয়ার জন্য অভিনন্দন, এবং এই সময়ে বান্ডেলড পরিষেবাগুলির ব্যবহার বজায় রাখার জন্য।
পরিষ্কার করা
সাধারণ
যদি এখনকার মতো কাজ শেষ হয়ে যায়, তাহলে বিলিং এড়াতে আমরা আপনাকে আপনার অ্যাপ ইঞ্জিন অ্যাপটি অক্ষম করার পরামর্শ দিচ্ছি। তবে আপনি যদি আরও কিছু পরীক্ষা বা পরীক্ষা করতে চান, তাহলে অ্যাপ ইঞ্জিন প্ল্যাটফর্মের একটি বিনামূল্যের কোটা আছে, এবং যতক্ষণ না আপনি সেই ব্যবহারের স্তর অতিক্রম করেন, ততক্ষণ আপনাকে চার্জ করা উচিত নয়। এটি গণনার জন্য, তবে প্রাসঙ্গিক অ্যাপ ইঞ্জিন পরিষেবাগুলির জন্যও চার্জ হতে পারে, তাই আরও তথ্যের জন্য এর মূল্য পৃষ্ঠাটি দেখুন। যদি এই মাইগ্রেশনে অন্যান্য ক্লাউড পরিষেবা জড়িত থাকে, তবে সেগুলি আলাদাভাবে বিল করা হয়। উভয় ক্ষেত্রেই, প্রযোজ্য হলে, নীচের "এই কোডল্যাবের জন্য নির্দিষ্ট" বিভাগটি দেখুন।
সম্পূর্ণ প্রকাশের জন্য, অ্যাপ ইঞ্জিনের মতো গুগল ক্লাউড সার্ভারলেস কম্পিউট প্ল্যাটফর্মে স্থাপনের জন্য সামান্য বিল্ড এবং স্টোরেজ খরচ হয়। ক্লাউড স্টোরেজের মতো ক্লাউড বিল্ডেরও নিজস্ব ফ্রি কোটা রয়েছে। সেই ছবির স্টোরেজ সেই কোটার কিছু অংশ ব্যবহার করে। তবে, আপনি এমন একটি অঞ্চলে বাস করতে পারেন যেখানে এই ধরণের ফ্রি টিয়ার নেই, তাই সম্ভাব্য খরচ কমাতে আপনার স্টোরেজ ব্যবহার সম্পর্কে সচেতন থাকুন। আপনার পর্যালোচনা করা উচিত এমন নির্দিষ্ট ক্লাউড স্টোরেজ "ফোল্ডার"গুলির মধ্যে রয়েছে:
-
console.cloud.google.com/storage/browser/LOC.artifacts.PROJECT_ID.appspot.com/containers/images -
console.cloud.google.com/storage/browser/staging.PROJECT_ID.appspot.com - উপরের স্টোরেজ লিঙ্কগুলি আপনার
PROJECT_IDএবং *LOC*ation এর উপর নির্ভর করে, উদাহরণস্বরূপ, "us" যদি আপনার অ্যাপটি মার্কিন যুক্তরাষ্ট্রে হোস্ট করা হয়।
অন্যদিকে, যদি আপনি এই অ্যাপ্লিকেশন বা অন্যান্য সম্পর্কিত মাইগ্রেশন কোডল্যাবগুলি চালিয়ে যেতে না চান এবং সবকিছু সম্পূর্ণরূপে মুছে ফেলতে চান, তাহলে আপনার প্রকল্পটি বন্ধ করে দিন ।
এই কোডল্যাবের জন্য নির্দিষ্ট
নীচে তালিকাভুক্ত পরিষেবাগুলি এই কোডল্যাবের জন্য অনন্য। আরও তথ্যের জন্য প্রতিটি পণ্যের ডকুমেন্টেশন দেখুন:
- অ্যাপ ইঞ্জিন ডেটাস্টোর পরিষেবাটি ক্লাউড ডেটাস্টোর (ডেটাস্টোর মোডে ক্লাউড ফায়ারস্টোর) দ্বারা সরবরাহ করা হয় যার একটি বিনামূল্যের স্তরও রয়েছে; আরও তথ্যের জন্য এর মূল্য পৃষ্ঠাটি দেখুন।
পরবর্তী পদক্ষেপ
এখান থেকে যেতে বেশ কয়েকটি দিকনির্দেশনা রয়েছে:
- বান্ডেলড পরিষেবা ব্যবহার করে কোড আপডেট করুন যার জন্য আরও কোড পরিবর্তন প্রয়োজন
- বান্ডেলড পরিষেবা থেকে ক্লাউড স্ট্যান্ডঅ্যালোন পণ্যগুলিতে স্থানান্তর করুন
- অ্যাপ ইঞ্জিন থেকে অন্য ক্লাউড সার্ভারলেস প্ল্যাটফর্মে স্থানান্তর করুন
Blobstore , Mail , এবং Deferred এর মতো অন্যান্য বান্ডেলড পরিষেবা অ্যাক্সেস করার জন্য আরও কোড পরিবর্তন প্রয়োজন। অ্যাপ ইঞ্জিনের লিগ্যাসি বান্ডেলড পরিষেবাগুলি থেকে সরে যাওয়ার উপর দৃষ্টি নিবদ্ধ করে মাইগ্রেশন মডিউলগুলি বিবেচনা করার জন্য অন্তর্ভুক্ত:
- মডিউল ২ : অ্যাপ ইঞ্জিন এনডিবি থেকে ক্লাউড এনডিবি
- মডিউল ৭-৯ : অ্যাপ ইঞ্জিন টাস্ককিউ (টাস্ক পুশ) ক্লাউড টাস্কে
- মডিউল ১২-১৩ : অ্যাপ ইঞ্জিন মেমক্যাশে থেকে ক্লাউড মেমোরিস্টোর
- মডিউল ১৫-১৬ : অ্যাপ ইঞ্জিন ব্লবস্টোর থেকে ক্লাউড স্টোরেজ
- মডিউল ১৮-১৯ : অ্যাপ ইঞ্জিন টাস্ককিউ (টাস্ক টানুন) ক্লাউড পাব/সাবে
গুগল ক্লাউডে অ্যাপ ইঞ্জিন এখন আর একমাত্র সার্ভারলেস প্ল্যাটফর্ম নয়। যদি আপনার কাছে একটি ছোট অ্যাপ ইঞ্জিন অ্যাপ থাকে অথবা সীমিত কার্যকারিতা থাকে এবং আপনি এটিকে একটি স্বতন্ত্র মাইক্রোসার্ভিসে রূপান্তর করতে চান, অথবা আপনি একটি একক অ্যাপকে একাধিক পুনঃব্যবহারযোগ্য উপাদানে বিভক্ত করতে চান, তাহলে ক্লাউড ফাংশনে স্থানান্তরিত হওয়ার কথা বিবেচনা করার জন্য এগুলি ভালো কারণ। যদি কন্টেইনারাইজেশন আপনার অ্যাপ্লিকেশন ডেভেলপমেন্ট ওয়ার্কফ্লোর অংশ হয়ে ওঠে, বিশেষ করে যদি এটি একটি CI/CD (ক্রমাগত ইন্টিগ্রেশন/ক্রমাগত ডেলিভারি বা স্থাপনা) পাইপলাইন নিয়ে গঠিত হয়, তাহলে ক্লাউড রানে স্থানান্তরিত করার কথা বিবেচনা করুন। এই পরিস্থিতিগুলি নিম্নলিখিত মডিউল দ্বারা আচ্ছাদিত:
- অ্যাপ ইঞ্জিন থেকে ক্লাউড ফাংশনে স্থানান্তর করুন: মডিউল ১১ দেখুন
- অ্যাপ ইঞ্জিন থেকে ক্লাউড রানে মাইগ্রেট করুন: ডকার দিয়ে আপনার অ্যাপটি কন্টেইনারাইজ করতে মডিউল 4 দেখুন, অথবা কন্টেইনার, ডকার জ্ঞান, অথবা
Dockerfileছাড়াই এটি করতে মডিউল 5 দেখুন।
অন্য সার্ভারলেস প্ল্যাটফর্মে স্যুইচ করা ঐচ্ছিক, এবং আমরা কোনও পরিবর্তন করার আগে আপনার অ্যাপ এবং ব্যবহারের ক্ষেত্রে সেরা বিকল্পগুলি বিবেচনা করার পরামর্শ দিচ্ছি।
আপনি পরবর্তীতে কোন মাইগ্রেশন মডিউলটি বিবেচনা করবেন তা নির্বিশেষে, সমস্ত সার্ভারলেস মাইগ্রেশন স্টেশন কন্টেন্ট (কোডল্যাব, ভিডিও, সোর্স কোড [যখন উপলব্ধ]) এর ওপেন সোর্স রেপোতে অ্যাক্সেস করা যেতে পারে। রেপোর README কোন মাইগ্রেশনগুলি বিবেচনা করতে হবে এবং মাইগ্রেশন মডিউলগুলির কোনও প্রাসঙ্গিক "ক্রম" সম্পর্কেও নির্দেশিকা প্রদান করে।
৭. অতিরিক্ত সম্পদ
ডেভেলপারদের জন্য এই বা সম্পর্কিত মাইগ্রেশন মডিউল এবং সম্পর্কিত পণ্যগুলি আরও অন্বেষণ করার জন্য অতিরিক্ত সংস্থানগুলি নীচে তালিকাভুক্ত করা হয়েছে। এর মধ্যে এই বিষয়বস্তুতে প্রতিক্রিয়া প্রদানের স্থান, কোডের লিঙ্ক এবং আপনার জন্য দরকারী মনে হতে পারে এমন বিভিন্ন ডকুমেন্টেশন অন্তর্ভুক্ত রয়েছে।
কোডল্যাব সমস্যা/প্রতিক্রিয়া
এই কোডল্যাবে যদি কোনও সমস্যা খুঁজে পান, তাহলে ফাইল করার আগে অনুগ্রহ করে প্রথমে আপনার সমস্যাটি অনুসন্ধান করুন। নতুন সমস্যা অনুসন্ধান এবং তৈরি করার লিঙ্ক:
মাইগ্রেশন রিসোর্স
মডিউল ১ (START) এবং মডিউল ১বি (FINISH) এর জন্য রেপো ফোল্ডারগুলির লিঙ্কগুলি নীচের টেবিলে পাওয়া যাবে। সমস্ত অ্যাপ ইঞ্জিন কোডল্যাব মাইগ্রেশনের জন্য রেপো থেকেও এগুলি অ্যাক্সেস করা যেতে পারে।
কোডল্যাব | পাইথন ২ | পাইথন ৩ |
নিষিদ্ধ | ||
মডিউল ১৭ (এই কোডল্যাব) | নিষিদ্ধ | কোড (mod1b-ফ্লাস্ক) |
অনলাইন রিসোর্স
এই টিউটোরিয়ালের জন্য প্রাসঙ্গিক হতে পারে এমন অনলাইন রিসোর্সগুলি নীচে দেওয়া হল:
অ্যাপ ইঞ্জিন বান্ডেলড পরিষেবা
- পাইথন ৩ পরবর্তী প্রজন্মের রানটাইমে বান্ডেলড পরিষেবা অ্যাক্সেস করা
- মডিউল ০ অ্যাপ (পাইথন ২) বনাম মডিউল ১বি অ্যাপ (পাইথন ৩) এর পাশাপাশি তুলনা
- অ্যাপ ইঞ্জিন SDK ওয়েব ফ্রেমওয়ার্ক WSGI অবজেক্ট র্যাপারের নমুনা
- পরবর্তী প্রজন্মের রানটাইম লঞ্চে (২০২১) অ্যাপ ইঞ্জিন বান্ডেলড পরিষেবাগুলির জন্য সমর্থন
অ্যাপ ইঞ্জিনের সাধারণ ডক্স
- অ্যাপ ইঞ্জিন ডকুমেন্টেশন
- পাইথন ২ অ্যাপ ইঞ্জিন (স্ট্যান্ডার্ড এনভায়রনমেন্ট) রানটাইম
- পাইথন ২ অ্যাপ ইঞ্জিনে অ্যাপ ইঞ্জিন বিল্ট-ইন লাইব্রেরি ব্যবহার করা
- পাইথন ৩ অ্যাপ ইঞ্জিন (স্ট্যান্ডার্ড এনভায়রনমেন্ট) রানটাইম
- পাইথন ২ এবং ৩ অ্যাপ ইঞ্জিন (স্ট্যান্ডার্ড এনভায়রনমেন্ট) রানটাইমের মধ্যে পার্থক্য
- পাইথন ২ থেকে ৩ অ্যাপ ইঞ্জিন (স্ট্যান্ডার্ড এনভায়রনমেন্ট) মাইগ্রেশন গাইড
- অ্যাপ ইঞ্জিনের মূল্য এবং কোটার তথ্য
- দ্বিতীয় প্রজন্মের অ্যাপ ইঞ্জিন প্ল্যাটফর্ম লঞ্চ (২০১৮)
- লিগ্যাসি রানটাইমের জন্য দীর্ঘমেয়াদী সহায়তা
- ডকুমেন্টেশন মাইগ্রেশন নমুনা রেপো
- সম্প্রদায়-অবদানিত মাইগ্রেশন নমুনা রেপো
অন্যান্য ক্লাউড তথ্য
- গুগল ক্লাউড প্ল্যাটফর্মে পাইথন
- গুগল ক্লাউড পাইথন ক্লায়েন্ট লাইব্রেরি
- গুগল ক্লাউড "সর্বদা বিনামূল্যে" স্তর
- গুগল ক্লাউড এসডিকে (
gcloudকমান্ড-লাইন টুল) - সমস্ত গুগল ক্লাউড ডকুমেন্টেশন
ভিডিও
- সার্ভারলেস মাইগ্রেশন স্টেশন
- সার্ভারলেস অভিযান
- গুগল ক্লাউড টেক -এ সাবস্ক্রাইব করুন
- গুগল ডেভেলপারদের সাবস্ক্রাইব করুন
লাইসেন্স
এই কাজটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন ২.০ জেনেরিক লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত।