1. ওভারভিউ
কোডল্যাবগুলির সার্ভারলেস মাইগ্রেশন স্টেশন সিরিজ (স্ব-গতিসম্পন্ন, হ্যান্ড-অন টিউটোরিয়াল) এবং সম্পর্কিত ভিডিওগুলির লক্ষ্য হল Google ক্লাউড সার্ভারহীন বিকাশকারীদের তাদের অ্যাপ্লিকেশনগুলিকে এক বা একাধিক মাইগ্রেশনের মাধ্যমে গাইড করে আধুনিকীকরণ করতে সাহায্য করা, প্রাথমিকভাবে উত্তরাধিকার পরিষেবাগুলি থেকে দূরে সরে যাওয়া৷ এটি করা আপনার অ্যাপগুলিকে আরও বহনযোগ্য করে তোলে এবং আপনাকে আরও বিকল্প এবং নমনীয়তা দেয়, যা আপনাকে ক্লাউড পণ্যগুলির একটি বিস্তৃত পরিসরের সাথে একীভূত করতে এবং অ্যাক্সেস করতে এবং আরও সহজে নতুন ভাষা প্রকাশগুলিতে আপগ্রেড করতে সক্ষম করে৷ প্রাথমিকভাবে প্রথম দিকের ক্লাউড ব্যবহারকারীদের উপর ফোকাস করার সময়, প্রাথমিকভাবে অ্যাপ ইঞ্জিন (স্ট্যান্ডার্ড এনভায়রনমেন্ট) ডেভেলপারদের, এই সিরিজটি ক্লাউড ফাংশন এবং ক্লাউড রানের মতো অন্যান্য সার্ভারহীন প্ল্যাটফর্মগুলিকে অন্তর্ভুক্ত করার জন্য যথেষ্ট বিস্তৃত, বা অন্য কোথাও প্রযোজ্য হলে।
পূর্বে, ডেভেলপারদের ভাষা সংস্করণ আপগ্রেড করার আগে অ্যাপ ইঞ্জিনের উত্তরাধিকারী "বান্ডিল পরিষেবাগুলি" যেমন Datastore এবং Memcache থেকে স্থানান্তরিত করতে হবে, দুটি সম্ভাব্য চ্যালেঞ্জিং প্রচেষ্টা ব্যাক-টু-ব্যাক। 2য়-প্রজন্মের অ্যাপ ইঞ্জিন পরিষেবায় অনেকগুলি মূল বান্ডিল পরিষেবা উপলব্ধ করার মাধ্যমে, বিকাশকারীরা এখন বান্ডেল করা পরিষেবাগুলি (অধিকাংশ) ব্যবহার করা চালিয়ে গিয়ে তাদের অ্যাপগুলিকে সর্বশেষ রানটাইমে পোর্ট করতে পারে। এই কোডল্যাব আপনাকে পাইথন 2 থেকে 3 থেকে একটি নমুনা অ্যাপ আপগ্রেড করার মাধ্যমে ডেটাস্টোর বান্ডিল করা পরিষেবার (অ্যাপ ইঞ্জিন এনডিবি লাইব্রেরির মাধ্যমে) ব্যবহার বজায় রাখতে সাহায্য করে। বেশিরভাগ বান্ডিল পরিষেবাগুলির ব্যবহারের জন্য শুধুমাত্র কোডের একটি ছোটখাট আপডেটের প্রয়োজন হয় যা এই টিউটোরিয়ালে কভার করা হবে, তবে আরও কিছু পরিবর্তনের প্রয়োজন রয়েছে; এগুলি "পার্ট 2," একটি ফলো-আপ মডিউল এবং কোডল্যাব দ্বারা আচ্ছাদিত হবে৷
আপনি কিভাবে শিখবেন
- Python 2 থেকে 3 পর্যন্ত পোর্ট নমুনা অ্যাপ ইঞ্জিন অ্যাপ
- অ্যাপ ইঞ্জিন SDK অন্তর্ভুক্ত করতে অ্যাপ কনফিগারেশন আপডেট করুন
- Python 3 এর মত ২য় প্রজন্মের রানটাইমে বান্ডেল করা পরিষেবাগুলিকে সমর্থন করে অ্যাপে SDK কোড যোগ করুন
আপনি কি প্রয়োজন হবে
- একটি সক্রিয় GCP বিলিং অ্যাকাউন্ট সহ একটি Google ক্লাউড প্রকল্প৷
- মৌলিক পাইথন দক্ষতা
- সাধারণ লিনাক্স কমান্ডের কাজের জ্ঞান
- অ্যাপ ইঞ্জিন অ্যাপ্লিকেশানগুলি বিকাশ এবং স্থাপন করার প্রাথমিক জ্ঞান
- একটি কার্যকরী মডিউল 1 অ্যাপ ইঞ্জিন অ্যাপ ( এর কোডল্যাব সম্পূর্ণ করুন [প্রস্তাবিত] বা রেপো থেকে অ্যাপটি অনুলিপি করুন)
সমীক্ষা
আপনি কিভাবে এই টিউটোরিয়াল ব্যবহার করবেন?
পাইথনের সাথে আপনার অভিজ্ঞতাকে আপনি কীভাবে মূল্যায়ন করবেন?
আপনি Google ক্লাউড পরিষেবাগুলি ব্যবহার করার সাথে আপনার অভিজ্ঞতাকে কীভাবে মূল্যায়ন করবেন?
2. পটভূমি
আসল অ্যাপ ইঞ্জিন পরিষেবাটি 2008 সালে চালু হয়েছিল এবং বিশ্বব্যাপী অ্যাপ্লিকেশনগুলি তৈরি এবং স্থাপন করার জন্য ডেভেলপারদের জন্য এটিকে সুবিধাজনক করার জন্য লিগ্যাসি API (এখন বান্ডিল পরিষেবা হিসাবে পরিচিত) এর একটি সেট নিয়ে এসেছিল৷ এই পরিষেবাগুলিতে ডেটাস্টোর, মেমক্যাশ এবং টাস্ক কিউ অন্তর্ভুক্ত রয়েছে। সুবিধাজনক হলেও, ব্যবহারকারীরা তাদের অ্যাপের পোর্টেবিলিটি সম্পর্কে উদ্বিগ্ন হয়ে ওঠে যখন মালিকানাধীন API ব্যবহার করে তাদের অ্যাপ ইঞ্জিনের সাথে সংযুক্ত করে এবং তাদের অ্যাপগুলিকে আরও পোর্টেবল করতে চায়। এটি এই সত্যের সাথে মিলিত যে এই বান্ডিল করা পরিষেবাগুলির অনেকগুলি তাদের নিজস্ব স্বতন্ত্র ক্লাউড পণ্যে পরিণত হওয়ার জন্য অ্যাপ ইঞ্জিন টিমকে তাদের ছাড়াই 2018 সালে পরবর্তী প্রজন্মের প্ল্যাটফর্ম চালু করতে পরিচালিত করেছিল।
Python 2 ডেভেলপারদের সাথে Python 3-এ আপগ্রেড করতে আগ্রহী একটি 2.x অ্যাপ ব্যবহার করে তাদের অ্যাপগুলিকে 3.x-এ পোর্ট করার আগে সেই পরিষেবাগুলি থেকে দূরে সরে যেতে হবে, যা এক জোড়া জোরপূর্বক মাইগ্রেশনের প্রতিনিধিত্ব করে। -ব্যাক, সম্ভাব্য চ্যালেঞ্জিং বেশী. এই পরিবর্তনে সহায়তা করার জন্য, অ্যাপ ইঞ্জিন টিম 2021 সালের শরত্কালে অতীতের জন্য একটি "ওয়ার্মহোল" প্রবর্তন করেছিল , যা পরবর্তী প্রজন্মের রানটাইমে চলমান অ্যাপগুলিকে সেই সমস্ত বান্ডিল পরিষেবাগুলির অনেকগুলি অ্যাক্সেস করতে দেয়৷ যদিও এই রিলিজটি মূল রানটাইমে উপলব্ধ সমস্ত পরিষেবাগুলিকে অন্তর্ভুক্ত করে না, প্রধান প্লেয়ার যেমন ডেটাস্টোর, টাস্ক কিউ এবং মেমক্যাশে উপলব্ধ ।
এই কোডল্যাবটি আপনার অ্যাপকে Python 3 তে আপগ্রেড করার জন্য প্রয়োজনীয় পরিবর্তনগুলি দেখায় এবং বান্ডেল করা পরিষেবাগুলির ব্যবহার সংরক্ষণ করে৷ লক্ষ্য হল আপনার অ্যাপগুলিকে 3.x আপগ্রেডের ব্লকার হওয়ার পরিবর্তে আপনার নিজস্ব টাইমলাইনে বান্ডেল করা পরিষেবাগুলি থেকে ক্লাউড স্ট্যান্ডঅ্যালোন সমতুল্য বা 3য়-পার্টি বিকল্পগুলিতে স্থানান্তরিত করার অনুমতি দেয়। যদিও বান্ডেল করা পরিষেবাগুলি থেকে দূরে স্থানান্তরিত হওয়ার আর প্রয়োজন নেই, এটি করার ফলে আপনার অ্যাপগুলি কোথায় হোস্ট করা যেতে পারে তার পরিপ্রেক্ষিতে আপনাকে আরও বহনযোগ্যতা এবং নমনীয়তা দেয়, যার মধ্যে এমন প্ল্যাটফর্মগুলিতে স্থানান্তর করা সহ যা আপনার কাজের চাপকে আরও ভালভাবে পরিবেশন করতে পারে, বা আপগ্রেড করার সময় কেবল অ্যাপ ইঞ্জিনে থাকা একটি আরো আধুনিক ভাষা প্রকাশের জন্য যেমন বর্ণনা করা হয়েছে।
মডিউল 1 পাইথন 2 নমুনা অ্যাপ অ্যাপ ইঞ্জিন NDB-এর মাধ্যমে ডেটাস্টোর বান্ডিল পরিষেবা ব্যবহার করে। অ্যাপটি ইতিমধ্যে webapp2 থেকে Flask-এ ফ্রেমওয়ার্ক স্থানান্তরিত করেছে — মডিউল 1 কোডল্যাবে সম্পূর্ণ হয়েছে —কিন্তু এর ডেটাস্টোর ব্যবহার অক্ষত রয়েছে।
এই টিউটোরিয়ালে নিম্নলিখিত পদক্ষেপগুলি রয়েছে:
- সেটআপ/প্রিওয়ার্ক
- কনফিগারেশন আপডেট করুন
- অ্যাপ্লিকেশন কোড পরিবর্তন করুন
3. সেটআপ/প্রিওয়ার্ক
এই বিভাগটি ব্যাখ্যা করে কিভাবে:
- আপনার ক্লাউড প্রকল্প সেট আপ করুন
- বেসলাইন নমুনা অ্যাপ্লিকেশন পান
- (পুনঃ) বেসলাইন অ্যাপ স্থাপন এবং যাচাই করুন
এই পদক্ষেপগুলি নিশ্চিত করে যে আপনি কাজের কোড দিয়ে শুরু করছেন।
1. সেটআপ প্রকল্প
আপনি যদি মডিউল 1 কোডল্যাব সম্পূর্ণ করেন, আমরা সেই একই প্রকল্প (এবং কোড) পুনরায় ব্যবহার করার পরামর্শ দিই। বিকল্পভাবে, একটি একেবারে নতুন ক্লাউড প্রকল্প তৈরি করুন বা অন্য একটি বিদ্যমান প্রকল্প পুনরায় ব্যবহার করুন৷ প্রকল্পের একটি সক্রিয় বিলিং অ্যাকাউন্ট আছে তা নিশ্চিত করুন যেখানে অ্যাপ ইঞ্জিন পরিষেবা সক্ষম করা হয়েছে৷
2. বেসলাইন নমুনা অ্যাপ পান
এই কোডল্যাবের পূর্বশর্তগুলির মধ্যে একটি হল একটি কার্যকরী মডিউল 1 অ্যাপ ইঞ্জিন অ্যাপ: মডিউল 1 কোডল্যাব (প্রস্তাবিত) সম্পূর্ণ করুন বা রেপো থেকে মডিউল 1 অ্যাপটি অনুলিপি করুন। আপনি আপনার বা আমাদের ব্যবহার করুন না কেন, মডিউল 1 কোড যেখানে আমরা "শুরু" করব। এই কোডল্যাবটি আপনাকে প্রতিটি ধাপের মধ্য দিয়ে নিয়ে যায়, কোড দিয়ে শেষ করে যা মডিউল 7 রেপো ফোল্ডার "FINISH"-এর অনুরূপ।
- শুরু: মডিউল 1 ফোল্ডার (পাইথন 2)
- ফিনিশ: মডিউল 1b ফোল্ডার (পাইথন 3)
- সম্পূর্ণ রেপো (ক্লোন করতে বা জিপ ফাইল ডাউনলোড করতে)
আপনি যে মডিউল 1 অ্যাপটি ব্যবহার করেন তা নির্বিশেষে, ফোল্ডারটি নীচের মত হওয়া উচিত, সম্ভবত একটি lib
ফোল্ডারের সাথেও:
$ ls README.md appengine_config.py requirements.txt app.yaml main.py templates
3. (পুনরায়) বেসলাইন অ্যাপ স্থাপন করুন
মডিউল 1 অ্যাপটি স্থাপন (পুনরায়) করতে নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:
-
lib
ফোল্ডারটি মুছুন যদি একটি থাকে এবং চালান:pip install -t lib -r requirements.txt
lib
পুনরুদ্ধার করতে। আপনার যদি পাইথন 2 এবং 3 উভয়ই ইনস্টল থাকে তবে আপনাকে এর পরিবর্তেpip2
কমান্ড ব্যবহার করতে হবে। - নিশ্চিত করুন যে আপনি
gcloud
কমান্ড-লাইন টুলটি ইনস্টল এবং শুরু করেছেন এবং এর ব্যবহার পর্যালোচনা করেছেন। -
gcloud config set project
PROJECT_ID
দিয়ে আপনার ক্লাউড প্রজেক্ট সেট করুন যদি আপনি প্রতিটিgcloud
কমান্ড দিয়ে আপনারPROJECT_ID
লিখতে না চান। -
gcloud app deploy
সাথে নমুনা অ্যাপটি স্থাপন করুন - নিশ্চিত করুন যে মডিউল 1 অ্যাপটি সাম্প্রতিক ভিজিটগুলি প্রদর্শন করার সমস্যা ছাড়াই প্রত্যাশিতভাবে চলছে (নীচে চিত্রিত)
4. কনফিগারেশন আপডেট করুন
একবার আপনি এই পদক্ষেপগুলি সফলভাবে সম্পাদন করে এবং আপনার ওয়েব অ্যাপটি কাজ করে দেখেন, আপনি কনফিগার থেকে শুরু করে এই অ্যাপটিকে পাইথন 3-এ পোর্ট করতে প্রস্তুত।
Requiments.txt-এ SDK যোগ করুন
অ্যাপ ইঞ্জিন পাইথন 3 রানটাইম তৃতীয় পক্ষের লাইব্রেরি ব্যবহার করার জন্য ওভারহেডকে উল্লেখযোগ্যভাবে হ্রাস করে। requirements.txt
.txt-এ তাদের তালিকাভুক্ত করা প্রয়োজন। Python 3-এ বান্ডিল করা পরিষেবাগুলি ব্যবহার করতে, অ্যাপ ইঞ্জিন SDK প্যাকেজ, appengine-python-standard
যোগ করুন। SDK প্যাকেজটি মডিউল 1 থেকে ফ্লাস্কে যোগ দেয়:
flask
appengine-python-standard
app.yaml আপডেট করুন
আপনার app.yaml
ফাইলে কনফিগার পরিবর্তনগুলি প্রয়োগ করতে নীচের পদক্ষেপগুলি অনুসরণ করুন:
- সমর্থিত Python 3 রিলিজের সাথে
runtime
নির্দেশনা প্রতিস্থাপন করুন; উদাহরণস্বরূপ, Python 3.10-এর জন্যpython310
উল্লেখ করুন। -
threadsafe
এবংapi_version
উভয় নির্দেশিকা মুছুন কারণ Python 3 তে ব্যবহৃত হয় না। -
handlers
বিভাগটি সম্পূর্ণরূপে মুছুন যেহেতু এই অ্যাপটিতে শুধুমাত্র স্ক্রিপ্ট হ্যান্ডলার রয়েছে। যদি আপনার অ্যাপে স্ট্যাটিক ফাইল হ্যান্ডলার থাকে, তাহলে সেগুলোকেhandlers
অক্ষত রাখুন। - পাইথন 3 রানটাইম পাইথন 2 রানটাইমের মতো বিল্ট-ইন 3য়-পার্টি লাইব্রেরি সমর্থন করে না। যদি আপনার অ্যাপের
app.yaml
এ একটিlibraries
বিভাগ থাকে, তাহলে পুরো বিভাগটি মুছে দিন। (প্রয়োজনীয় প্যাকেজগুলি কেবলমাত্র নন-বিল্ট-ইন লাইব্রেরির মতোrequirements.txt
এ তালিকাভুক্ত করা প্রয়োজন।) আমাদের নমুনা অ্যাপেlibraries
বিভাগ নেই, তাই পরবর্তী ধাপে যান। - একটি
app_engine_apis
নির্দেশিকা তৈরি করুন এটি ব্যবহার করার জন্যtrue
সেট করুন—এটি উপরেরrequirements.txt
এ অ্যাপ ইঞ্জিন 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
ফোল্ডার মুছুন
এটি সমস্ত প্রয়োজনীয় কনফিগারেশন পরিবর্তনগুলি সমাপ্ত করে।
5. অ্যাপ্লিকেশন কোড পরিবর্তন করুন
Python 3 রানটাইম এনভায়রনমেন্টে উপলব্ধ বান্ডেল করা বেশিরভাগ পরিষেবা অ্যাক্সেস করার জন্য একটি সংক্ষিপ্ত কোডের প্রয়োজন হয় ওয়েব সার্ভার গেটওয়ে ইন্টারফেস (WSGI) অ্যাপ্লিকেশন অবজেক্টকে main.py
এ মোড়ানো। র্যাপার ফাংশনটি হল 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- মোড়ানো উদাহরণগুলির জন্য ডকুমেন্টেশন দেখুন।
যদিও এই উদাহরণটি পাইথন 3-এ আপনার অ্যাপকে বেশিরভাগ বান্ডিল পরিষেবাগুলিতে অ্যাক্সেস দেওয়ার জন্য কাজ করে, ব্লবস্টোর এবং মেইলের মতো অন্যদের অতিরিক্ত কোডের প্রয়োজন হয়। আমরা সেই নমুনাগুলিকে অন্য মাইগ্রেশন মডিউলে কভার করব।
এটি মডিউল 1 নমুনা অ্যাপে অ্যাপ ইঞ্জিন বান্ডিল করা পরিষেবাগুলির ব্যবহার যোগ করার জন্য প্রয়োজনীয় সমস্ত পরিবর্তনগুলি সমাপ্ত করে৷ অ্যাপ্লিকেশনটি ইতিমধ্যেই পাইথন 2 এবং 3 সামঞ্জস্যপূর্ণ, তাই আপনি ইতিমধ্যে কনফিগারেশনে যা করেছেন তা ছাড়া এটিকে পাইথন 3-এ পোর্ট করার জন্য কোনও অতিরিক্ত পরিবর্তন নেই। চূড়ান্ত পদক্ষেপ: এই পরিবর্তিত অ্যাপটিকে পরবর্তী প্রজন্মের অ্যাপ ইঞ্জিন পাইথন 3 রানটাইমে স্থাপন করুন এবং আপডেটগুলি সফল হয়েছে তা নিশ্চিত করুন।
6. সারাংশ/পরিষ্কার
এই বিভাগটি এই কোডল্যাবটিকে অ্যাপ স্থাপন করে, যাচাই করে এটিকে উদ্দেশ্য করে এবং যে কোনো প্রতিফলিত আউটপুটে কাজ করে। অ্যাপ্লিকেশান যাচাইকরণের পরে, যেকোনো পরিষ্কার-পরিচ্ছন্নতা সঞ্চালন করুন এবং পরবর্তী পদক্ষেপগুলি বিবেচনা করুন৷
প্রয়োগ এবং আবেদন যাচাই
Python 3 অ্যাপটিকে gcloud app deploy
সাথে স্থাপন করুন এবং নিশ্চিত করুন যে অ্যাপটি Python 2-এর মতো কাজ করে। কার্যকারিতার কোনো পরিবর্তন হয় না, তাই আউটপুটটি মডিউল 1 অ্যাপের অনুরূপ হওয়া উচিত:
চূড়ান্ত নোট
- মডিউল 1b ফোল্ডারে যা আছে তার সাথে আপনার যা আছে তা তুলনা করুন (FINISH) যদি আপনি পথ ধরে একটি ভুল পদক্ষেপ নেন এবং প্রয়োজনে সামঞ্জস্য করেন।
- এই পৃষ্ঠায় মডিউল 0
main.py
এর সাথে মডিউল 1bmain.py
এর সাথে তুলনা করুন যদি আপনার অ্যাপ এখনওwebapp2
ব্যবহার করে, তাহলেwebapp2
থেকে ফ্লাস্কে কীভাবে স্থানান্তর করতে হয় তা শিখতে মডিউল 1 কোডল্যাবটি করুন৷
আপনার Python 2 অ্যাপ ইঞ্জিন অ্যাপগুলিকে Python 3-এ পোর্ট করার জন্য প্রথম পদক্ষেপ নেওয়ার জন্য অভিনন্দন এই সময়ে তাদের বান্ডিল পরিষেবাগুলির ব্যবহার বজায় রেখে৷
পরিষ্কার করুন
সাধারণ
আপনি যদি আপাতত কাজ শেষ করে থাকেন, তাহলে বিলিং এড়াতে আমরা আপনাকে আপনার অ্যাপ ইঞ্জিন অ্যাপটি অক্ষম করার পরামর্শ দিই। তবে আপনি যদি আরও কিছু পরীক্ষা বা পরীক্ষা করতে চান, অ্যাপ ইঞ্জিন প্ল্যাটফর্মের একটি বিনামূল্যের কোটা রয়েছে, এবং যতক্ষণ না আপনি সেই ব্যবহারের স্তরটি অতিক্রম না করেন, আপনাকে চার্জ করা উচিত নয়। এটি গণনার জন্য, তবে প্রাসঙ্গিক অ্যাপ ইঞ্জিন পরিষেবাগুলির জন্যও চার্জ হতে পারে, তাই আরও তথ্যের জন্য এর মূল্য পৃষ্ঠাটি দেখুন৷ যদি এই স্থানান্তরের সাথে অন্যান্য ক্লাউড পরিষেবা জড়িত থাকে, তবে সেগুলি আলাদাভাবে বিল করা হবে৷ উভয় ক্ষেত্রে, প্রযোজ্য হলে, নীচের "এই কোডল্যাবের জন্য নির্দিষ্ট" বিভাগটি দেখুন।
সম্পূর্ণ প্রকাশের জন্য, অ্যাপ ইঞ্জিনের মতো একটি Google ক্লাউড সার্ভারহীন গণনা প্ল্যাটফর্মে স্থাপন করার জন্য সামান্য বিল্ড এবং স্টোরেজ খরচ হয়। ক্লাউড স্টোরেজের মতো ক্লাউড বিল্ডের নিজস্ব ফ্রি কোটা রয়েছে। সেই ছবির সঞ্চয়স্থান সেই কোটার কিছু ব্যবহার করে। যাইহোক, আপনি এমন একটি অঞ্চলে বাস করতে পারেন যেখানে এই ধরনের বিনামূল্যের স্তর নেই, তাই সম্ভাব্য খরচ কমাতে আপনার স্টোরেজ ব্যবহার সম্পর্কে সচেতন থাকুন। নির্দিষ্ট ক্লাউড স্টোরেজ "ফোল্ডার" আপনার পর্যালোচনা করা উচিত:
-
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
*করণের উপর নির্ভর করে, উদাহরণস্বরূপ, "us
" যদি আপনার অ্যাপটি USA তে হোস্ট করা হয়৷
অন্যদিকে, আপনি যদি এই অ্যাপ্লিকেশন বা অন্যান্য সম্পর্কিত মাইগ্রেশন কোডল্যাবগুলি চালিয়ে যেতে না চান এবং সবকিছু সম্পূর্ণরূপে মুছে ফেলতে চান, তাহলে আপনার প্রকল্পটি বন্ধ করুন ৷
এই কোডল্যাবের জন্য নির্দিষ্ট
নীচে তালিকাভুক্ত পরিষেবাগুলি এই কোডল্যাবের জন্য অনন্য৷ আরও তথ্যের জন্য প্রতিটি পণ্যের ডকুমেন্টেশন পড়ুন:
- অ্যাপ ইঞ্জিন ডেটাস্টোর পরিষেবাটি ক্লাউড ডেটাস্টোর (ডেটাস্টোর মোডে ক্লাউড ফায়ারস্টোর) দ্বারা সরবরাহ করা হয় যার একটি বিনামূল্যের স্তর রয়েছে; আরো তথ্যের জন্য এর মূল্য পৃষ্ঠা দেখুন।
পরবর্তী পদক্ষেপ
এখান থেকে যাওয়ার জন্য বেশ কয়েকটি দিকনির্দেশ রয়েছে:
- আরও কোড পরিবর্তনের প্রয়োজন বান্ডিল পরিষেবা ব্যবহার করে কোড আপডেট করুন
- বান্ডিল পরিষেবাগুলি থেকে ক্লাউড স্বতন্ত্র পণ্যগুলিতে স্থানান্তর করুন৷
- অ্যাপ ইঞ্জিন থেকে অন্য ক্লাউড সার্ভারহীন প্ল্যাটফর্মে স্থানান্তর করুন
Blobstore , Mail , এবং Deferred এর মতো অন্যান্য বান্ডিল পরিষেবাগুলি অ্যাক্সেস করার জন্য আরও কোড পরিবর্তনের প্রয়োজন৷ মাইগ্রেশন মডিউলগুলি বিবেচনা করার জন্য অ্যাপ ইঞ্জিন লিগ্যাসি বান্ডিল পরিষেবাগুলি থেকে দূরে সরে যাওয়ার উপর ফোকাস করে:
- মডিউল 2 : অ্যাপ ইঞ্জিন এনডিবি থেকে ক্লাউড এনডিবি
- মডিউল 7-9 : ক্লাউড টাস্কে অ্যাপ ইঞ্জিন টাস্ককিউ (পুশ টাস্ক)
- মডিউল 12-13 : ক্লাউড মেমোরিস্টোরে অ্যাপ ইঞ্জিন মেমক্যাশে
- মডিউল 15-16 : অ্যাপ ইঞ্জিন ব্লবস্টোর থেকে ক্লাউড স্টোরেজ
- মডিউল 18-19 : ক্লাউড পাব/সাব-এ অ্যাপ ইঞ্জিন টাস্ককিউ (টাস্ক টাস্ক)
অ্যাপ ইঞ্জিন আর Google ক্লাউডে একমাত্র সার্ভারহীন প্ল্যাটফর্ম নয়। আপনার যদি একটি ছোট অ্যাপ ইঞ্জিন অ্যাপ থাকে বা যেটির কার্যকারিতা সীমিত থাকে এবং এটিকে একটি স্বতন্ত্র মাইক্রোসার্ভিসে পরিণত করতে চান, অথবা আপনি একাধিক পুনঃব্যবহারযোগ্য উপাদানে একটি মনোলিথিক অ্যাপকে বিচ্ছিন্ন করতে চান, তাহলে ক্লাউড ফাংশনে যাওয়ার বিষয়টি বিবেচনা করার জন্য এটি ভাল কারণ। কন্টেইনারাইজেশন যদি আপনার অ্যাপ্লিকেশন ডেভেলপমেন্ট ওয়ার্কফ্লো-এর অংশ হয়ে থাকে, বিশেষ করে যদি এটি একটি CI/CD (একটানা ইন্টিগ্রেশন/কন্টিনিউয়াস ডেলিভারি বা ডিপ্লয়মেন্ট) পাইপলাইন নিয়ে থাকে, তাহলে ক্লাউড রানে মাইগ্রেট করার কথা বিবেচনা করুন। এই পরিস্থিতিতে নিম্নলিখিত মডিউল দ্বারা আচ্ছাদিত করা হয়:
- অ্যাপ ইঞ্জিন থেকে ক্লাউড ফাংশনে স্থানান্তর করুন: মডিউল 11 দেখুন
- অ্যাপ ইঞ্জিন থেকে ক্লাউড রানে স্থানান্তরিত করুন: আপনার অ্যাপটিকে ডকারের সাথে কনটেইনারাইজ করতে মডিউল 4 দেখুন, অথবা কন্টেইনার, ডকার জ্ঞান, বা
Dockerfile
ছাড়াই এটি করতে মডিউল 5 দেখুন
অন্য সার্ভারহীন প্ল্যাটফর্মে স্যুইচ করা ঐচ্ছিক, এবং আমরা কোনো পরিবর্তন করার আগে আপনার অ্যাপ এবং ব্যবহারের ক্ষেত্রে সেরা বিকল্পগুলি বিবেচনা করার পরামর্শ দিই।
আপনি পরবর্তীতে যে মাইগ্রেশন মডিউলটি বিবেচনা করুন না কেন, সমস্ত সার্ভারলেস মাইগ্রেশন স্টেশন সামগ্রী (কোডল্যাব, ভিডিও, সোর্স কোড [যখন উপলব্ধ]) এর ওপেন সোর্স রেপোতে অ্যাক্সেস করা যেতে পারে। রেপোর README
কোন মাইগ্রেশন বিবেচনা করতে হবে এবং মাইগ্রেশন মডিউলের কোন প্রাসঙ্গিক "অর্ডার" তার নির্দেশিকাও প্রদান করে।
7. অতিরিক্ত সম্পদ
এই বা সম্পর্কিত মাইগ্রেশন মডিউল এবং সেইসাথে সম্পর্কিত পণ্যগুলি আরও অন্বেষণকারী বিকাশকারীদের জন্য নীচে তালিকাভুক্ত অতিরিক্ত সংস্থান রয়েছে৷ এর মধ্যে এই বিষয়বস্তুতে প্রতিক্রিয়া প্রদানের স্থান, কোডের লিঙ্ক এবং বিভিন্ন ডকুমেন্টেশন রয়েছে যা আপনার কাজে লাগতে পারে।
কোডল্যাব সমস্যা/প্রতিক্রিয়া
আপনি যদি এই কোডল্যাবের সাথে কোনো সমস্যা খুঁজে পান, অনুগ্রহ করে ফাইল করার আগে প্রথমে আপনার সমস্যাটি অনুসন্ধান করুন। অনুসন্ধান এবং নতুন সমস্যা তৈরি করার লিঙ্ক:
মাইগ্রেশন সম্পদ
মডিউল 1 (START) এবং মডিউল 1b (FINISH) এর জন্য রেপো ফোল্ডারগুলির লিঙ্কগুলি নীচের টেবিলে পাওয়া যাবে। এগুলি সমস্ত অ্যাপ ইঞ্জিন কোডল্যাব মাইগ্রেশনের জন্য রেপো থেকেও অ্যাক্সেস করা যেতে পারে।
কোডল্যাব | পাইথন 2 | পাইথন 3 |
N/A | ||
মডিউল 17 (এই কোডল্যাব) | N/A | কোড (mod1b-ফ্লাস্ক) |
অনলাইন সম্পদ
নীচে অনলাইন সংস্থান রয়েছে যা এই টিউটোরিয়ালের জন্য প্রাসঙ্গিক হতে পারে:
অ্যাপ ইঞ্জিন বান্ডিল পরিষেবা
- পাইথন 3 পরবর্তী প্রজন্মের রানটাইমে বান্ডিল পরিষেবাগুলি অ্যাক্সেস করা
- মডিউল 0 অ্যাপ (পাইথন 2) বনাম মডিউল 1b অ্যাপ (পাইথন 3) পাশাপাশি তুলনা
- অ্যাপ ইঞ্জিন SDK ওয়েব ফ্রেমওয়ার্ক WSGI অবজেক্ট র্যাপার নমুনা
- পরবর্তী প্রজন্মের রানটাইম লঞ্চে (2021) অ্যাপ ইঞ্জিন বান্ডিল পরিষেবাগুলির জন্য সমর্থন
অ্যাপ ইঞ্জিন সাধারণ ডক্স
- অ্যাপ ইঞ্জিন ডকুমেন্টেশন
- পাইথন 2 অ্যাপ ইঞ্জিন (স্ট্যান্ডার্ড এনভায়রনমেন্ট) রানটাইম
- পাইথন 2 অ্যাপ ইঞ্জিনে অ্যাপ ইঞ্জিন বিল্ট-ইন লাইব্রেরি ব্যবহার করা
- Python 3 অ্যাপ ইঞ্জিন (স্ট্যান্ডার্ড এনভায়রনমেন্ট) রানটাইম
- পাইথন 2 এবং 3 অ্যাপ ইঞ্জিন (স্ট্যান্ডার্ড এনভায়রনমেন্ট) রানটাইমের মধ্যে পার্থক্য
- পাইথন 2 থেকে 3 অ্যাপ ইঞ্জিন (স্ট্যান্ডার্ড এনভায়রনমেন্ট) মাইগ্রেশন গাইড
- অ্যাপ ইঞ্জিন মূল্য এবং কোটা তথ্য
- দ্বিতীয় প্রজন্মের অ্যাপ ইঞ্জিন প্ল্যাটফর্ম লঞ্চ (2018)
- উত্তরাধিকার রানটাইম জন্য দীর্ঘমেয়াদী সমর্থন
- ডকুমেন্টেশন মাইগ্রেশন নমুনা রেপো
- কমিউনিটি-কন্ট্রিবিউটেড মাইগ্রেশন নমুনা রেপো
অন্যান্য ক্লাউড তথ্য
- গুগল ক্লাউড প্ল্যাটফর্মে পাইথন
- গুগল ক্লাউড পাইথন ক্লায়েন্ট লাইব্রেরি
- Google ক্লাউড "সর্বদা বিনামূল্যে" স্তর
- গুগল ক্লাউড SDK (
gcloud
কমান্ড লাইন টুল) - সমস্ত Google ক্লাউড ডকুমেন্টেশন
ভিডিও
- সার্ভারহীন মাইগ্রেশন স্টেশন
- সার্ভারহীন অভিযান
- Google Cloud Tech- এ সদস্যতা নিন
- Google Developers- এ সদস্যতা নিন
লাইসেন্স
এই কাজটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন 2.0 জেনেরিক লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত।