অ্যাপ ইঞ্জিন বান্ডিল পরিষেবাগুলির জন্য সমর্থন প্রসারিত করা: অংশ 1 (মডিউল 17)

1. সংক্ষিপ্ত বিবরণ

সার্ভারলেস মাইগ্রেশন স্টেশন সিরিজের কোডল্যাব (স্ব-গতিসম্পন্ন, হাতে-কলমে টিউটোরিয়াল) এবং সম্পর্কিত ভিডিওগুলির লক্ষ্য হল গুগল ক্লাউড সার্ভারলেস ডেভেলপারদের তাদের অ্যাপ্লিকেশনগুলিকে আধুনিকীকরণে সাহায্য করা, এক বা একাধিক মাইগ্রেশনের মাধ্যমে, প্রাথমিকভাবে লিগ্যাসি পরিষেবাগুলি থেকে দূরে সরে যাওয়ার মাধ্যমে। এটি আপনার অ্যাপগুলিকে আরও পোর্টেবল করে তোলে এবং আপনাকে আরও বিকল্প এবং নমনীয়তা দেয়, যা আপনাকে ক্লাউড পণ্যের বিস্তৃত পরিসরের সাথে একীভূত করতে এবং অ্যাক্সেস করতে এবং আরও সহজেই নতুন ভাষার রিলিজে আপগ্রেড করতে সক্ষম করে। প্রাথমিকভাবে প্রাথমিক ক্লাউড ব্যবহারকারীদের উপর, মূলত অ্যাপ ইঞ্জিন (স্ট্যান্ডার্ড এনভায়রনমেন্ট) ডেভেলপারদের উপর ফোকাস করার সময়, এই সিরিজটি ক্লাউড ফাংশন এবং ক্লাউড রানের মতো অন্যান্য সার্ভারলেস প্ল্যাটফর্ম, অথবা প্রযোজ্য ক্ষেত্রে অন্য কোথাও অন্তর্ভুক্ত করার জন্য যথেষ্ট বিস্তৃত।

পূর্বে, ডেভেলপারদের অ্যাপ ইঞ্জিনের লিগ্যাসি "বান্ডেলড সার্ভিস" যেমন ডেটাস্টোর এবং মেমক্যাশ থেকে মাইগ্রেট করতে হত, যা ল্যাঙ্গুয়েজ ভার্সন আপগ্রেড করার আগে পরপর দুটি সম্ভাব্য চ্যালেঞ্জিং প্রচেষ্টা ছিল। দ্বিতীয় প্রজন্মের অ্যাপ ইঞ্জিন পরিষেবায় অনেকগুলি মূল বান্ডেলড সার্ভিস উপলব্ধ করে, ডেভেলপাররা এখন তাদের অ্যাপগুলিকে সর্বশেষ রানটাইমে পোর্ট করতে পারে এবং (বেশিরভাগ) বান্ডেলড সার্ভিস ব্যবহার চালিয়ে যেতে পারে। এই কোডল্যাব আপনাকে Python 2 থেকে 3 তে একটি নমুনা অ্যাপ আপগ্রেড করার মাধ্যমে নিয়ে যায় এবং ডেটাস্টোর বান্ডেলড সার্ভিসের ব্যবহার বজায় রাখে (অ্যাপ ইঞ্জিন NDB লাইব্রেরির মাধ্যমে)। বেশিরভাগ বান্ডেলড সার্ভিস ব্যবহারের জন্য কোডে শুধুমাত্র একটি ছোটখাটো আপডেটের প্রয়োজন হয় যা এই টিউটোরিয়ালে কভার করা হবে, তবে আরও কিছু আছে যা আরও ব্যাপক পরিবর্তনের প্রয়োজন; এগুলি "পার্ট 2", একটি ফলো-আপ মডিউল এবং কোডল্যাব দ্বারা কভার করা হবে।

তুমি শিখবে কিভাবে

  • পাইথন ২ থেকে ৩ পর্যন্ত পোর্ট স্যাম্পল অ্যাপ ইঞ্জিন অ্যাপ
  • অ্যাপ ইঞ্জিন SDK অন্তর্ভুক্ত করার জন্য অ্যাপ কনফিগারেশন আপডেট করুন
  • পাইথন ৩ এর মতো দ্বিতীয় প্রজন্মের রানটাইমে বান্ডেলড পরিষেবা সমর্থনকারী অ্যাপে SDK কোড যোগ করুন।

তোমার যা লাগবে

জরিপ

আপনি এই টিউটোরিয়ালটি কীভাবে ব্যবহার করবেন?

শুধু পুরোটা পড়ুন এটি পড়ুন এবং অনুশীলনগুলি সম্পূর্ণ করুন।

পাইথনের সাথে আপনার অভিজ্ঞতাকে আপনি কীভাবে মূল্যায়ন করবেন?

নবীন মধ্যবর্তী দক্ষ

গুগল ক্লাউড পরিষেবা ব্যবহারের অভিজ্ঞতাকে আপনি কীভাবে মূল্যায়ন করবেন?

নবীন মধ্যবর্তী দক্ষ

2. পটভূমি

মূল অ্যাপ ইঞ্জিন পরিষেবাটি ২০০৮ সালে চালু হয়েছিল এবং ডেভেলপারদের বিশ্বব্যাপী অ্যাপ্লিকেশন তৈরি এবং স্থাপনের সুবিধার্থে লিগ্যাসি এপিআই (বর্তমানে বান্ডলড সার্ভিসেস নামে পরিচিত) এর একটি সেট নিয়ে এসেছিল। এই পরিষেবাগুলির মধ্যে রয়েছে ডেটাস্টোর, মেমক্যাশ এবং টাস্ক কিউ। সুবিধাজনক হলেও, ব্যবহারকারীরা অ্যাপ ইঞ্জিনের সাথে সংযুক্ত মালিকানাধীন এপিআই ব্যবহার করার সময় তাদের অ্যাপগুলির পোর্টেবিলিটি নিয়ে উদ্বিগ্ন হয়ে পড়েন এবং তাদের অ্যাপগুলিকে আরও পোর্টেবল করতে চান। এর সাথে মিলিত হয়ে এই বান্ডলড পরিষেবাগুলির অনেকগুলি তাদের নিজস্ব স্বতন্ত্র ক্লাউড পণ্যে পরিণত হওয়ার কারণে অ্যাপ ইঞ্জিন টিম ২০১৮ সালে পরবর্তী প্রজন্মের প্ল্যাটফর্মটি চালু করতে বাধ্য হয়।

আজকের দিনে Python 2 ডেভেলপাররা Python 3 তে আপগ্রেড করতে আগ্রহী। বান্ডেলড পরিষেবা ব্যবহার করে এমন একটি 2.x অ্যাপকে তাদের অ্যাপগুলিকে 3.x তে পোর্ট করার আগে সেই পরিষেবাগুলি থেকে দূরে স্থানান্তর করতে হত, যা বারবার জোরপূর্বক মাইগ্রেশনের একটি জোড়া প্রতিনিধিত্ব করে, যা সম্ভাব্য চ্যালেঞ্জিংও হতে পারে। এই রূপান্তরে সহায়তা করার জন্য, অ্যাপ ইঞ্জিন টিম 2021 সালের শরৎকালে অতীতের একটি "ওয়ার্মহোল" চালু করে , যা পরবর্তী প্রজন্মের রানটাইমে চলমান অ্যাপগুলিকে সেই বান্ডেলড পরিষেবাগুলির অনেকগুলি অ্যাক্সেস করার অনুমতি দেয়। যদিও এই রিলিজে মূল রানটাইমে উপলব্ধ সমস্ত পরিষেবা অন্তর্ভুক্ত নয়, ডেটাস্টোর, টাস্ক কিউ এবং মেমক্যাশের মতো প্রধান খেলোয়াড়রা উপলব্ধ

এই কোডল্যাবটি আপনার অ্যাপটিকে পাইথন 3 এ আপগ্রেড করার জন্য প্রয়োজনীয় পরিবর্তনগুলি প্রদর্শন করে এবং বান্ডলড পরিষেবার ব্যবহার সংরক্ষণ করে। লক্ষ্য হল আপনার অ্যাপগুলিকে সর্বশেষ রানটাইমে চালানো, যাতে আপনি বান্ডলড পরিষেবাগুলি থেকে ক্লাউড স্ট্যান্ডেলোন সমতুল্য বা তৃতীয় পক্ষের বিকল্পগুলিতে আপনার নিজস্ব টাইমলাইনে মাইগ্রেট করতে পারেন, এটি 3.x আপগ্রেডে ব্লকার না হয়ে। যদিও বান্ডলড পরিষেবাগুলি থেকে দূরে স্থানান্তরিত করার আর প্রয়োজন নেই, এটি করার ফলে আপনার অ্যাপগুলি কোথায় হোস্ট করা যেতে পারে সে বিষয়ে আরও পোর্টেবিলিটি এবং নমনীয়তা পাওয়া যায়, যার মধ্যে এমন প্ল্যাটফর্মগুলিতে স্থানান্তর করা অন্তর্ভুক্ত যা আপনার কাজের চাপকে আরও ভালভাবে পরিবেশন করতে পারে, অথবা কেবল অ্যাপ ইঞ্জিনে থাকাকালীন আরও আধুনিক ভাষা রিলিজে আপগ্রেড করা যেমন বর্ণনা করা হয়েছে।

মডিউল ১ পাইথন ২ নমুনা অ্যাপটি অ্যাপ ইঞ্জিন এনডিবি-র মাধ্যমে ডেটাস্টোর বান্ডেলড পরিষেবা ব্যবহার করে। অ্যাপটি ইতিমধ্যেই ওয়েবঅ্যাপ২ থেকে ফ্লাস্কে ফ্রেমওয়ার্ক স্থানান্তরিত করেছে— মডিউল ১ কোডল্যাবে সম্পন্ন হয়েছে—কিন্তু এর ডেটাস্টোর ব্যবহার অক্ষত রয়েছে।

এই টিউটোরিয়ালে নিম্নলিখিত ধাপগুলি রয়েছে:

  1. সেটআপ/প্রিওয়ার্ক
  2. কনফিগারেশন আপডেট করুন
  3. অ্যাপ্লিকেশন কোড পরিবর্তন করুন

৩. সেটআপ/প্রিওয়ার্ক

এই বিভাগটি ব্যাখ্যা করে কিভাবে:

  1. আপনার ক্লাউড প্রোজেক্ট সেট আপ করুন
  2. বেসলাইন নমুনা অ্যাপ পান
  3. (পুনরায়) বেসলাইন অ্যাপ স্থাপন এবং যাচাই করুন

এই ধাপগুলি নিশ্চিত করে যে আপনি কার্যকরী কোড দিয়ে শুরু করছেন।

১. সেটআপ প্রকল্প

যদি আপনি মডিউল ১ কোডল্যাব সম্পন্ন করে থাকেন, তাহলে আমরা সেই একই প্রকল্প (এবং কোড) পুনরায় ব্যবহার করার পরামর্শ দিচ্ছি। বিকল্পভাবে, একটি নতুন ক্লাউড প্রকল্প তৈরি করুন অথবা অন্য একটি বিদ্যমান প্রকল্প পুনরায় ব্যবহার করুন। নিশ্চিত করুন যে প্রকল্পটিতে একটি সক্রিয় বিলিং অ্যাকাউন্ট আছে যেখানে অ্যাপ ইঞ্জিন পরিষেবা সক্রিয় করা হয়েছে।

2. বেসলাইন নমুনা অ্যাপ পান

এই কোডল্যাবের পূর্বশর্তগুলির মধ্যে একটি হল একটি কার্যকরী মডিউল 1 অ্যাপ ইঞ্জিন অ্যাপ থাকা: মডিউল 1 কোডল্যাবটি সম্পূর্ণ করুন (প্রস্তাবিত) অথবা রেপো থেকে মডিউল 1 অ্যাপটি অনুলিপি করুন। আপনি আপনার বা আমাদের ব্যবহার করুন না কেন, মডিউল 1 কোডটিই হল যেখানে আমরা "START" করব। এই কোডল্যাবটি আপনাকে প্রতিটি ধাপে নিয়ে যাবে, এবং শেষ করবে এমন কোড দিয়ে যা মডিউল 7 রেপো ফোল্ডার "FINISH"-এর অনুরূপ।

আপনি যে মডিউল ১ অ্যাপই ব্যবহার করুন না কেন, ফোল্ডারটি নিচের মতো দেখতে হবে, সম্ভবত একটি lib ফোল্ডারও থাকবে:

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

৩. (পুনরায়) বেসলাইন অ্যাপ স্থাপন করুন

মডিউল ১ অ্যাপটি (পুনরায়) স্থাপন করতে নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:

  1. যদি lib ফোল্ডার থাকে তাহলে সেটি মুছে ফেলুন এবং lib পুনরায় পূরণ করতে pip install -t lib -r requirements.txt লিখুন। যদি আপনার Python 2 এবং 3 উভয়ই ইনস্টল করা থাকে তবে আপনাকে pip2 কমান্ড ব্যবহার করতে হতে পারে।
  2. নিশ্চিত করুন যে আপনি gcloud কমান্ড-লাইন টুলটি ইনস্টল এবং আরম্ভ করেছেন এবং এর ব্যবহার পর্যালোচনা করেছেন।
  3. আপনার ক্লাউড প্রজেক্টটি gcloud config set project দিয়ে সেট করুন, যদি আপনি প্রতিটি gcloud কমান্ডের সাথে আপনার PROJECT_ID লিখতে না চান, তাহলে প্রজেক্ট PROJECT_ID সেট করুন।
  4. gcloud app deploy মাধ্যমে নমুনা অ্যাপটি ডিপ্লয় করুন
  5. মডিউল ১ অ্যাপটি সাম্প্রতিক ভিজিটগুলি প্রদর্শনে কোনও সমস্যা ছাড়াই প্রত্যাশা অনুযায়ী চলছে কিনা তা নিশ্চিত করুন (নীচে চিত্রিত)

a7a9d2b80d706a2b.png সম্পর্কে

৪. কনফিগারেশন আপডেট করুন

একবার আপনি এই ধাপগুলি সফলভাবে সম্পাদন করার পরে এবং আপনার ওয়েব অ্যাপটি কাজ করছে দেখতে পেলে, আপনি কনফিগারেশন দিয়ে শুরু করে এই অ্যাপটি পাইথন 3 এ পোর্ট করতে প্রস্তুত।

requirements.txt-এ SDK যোগ করুন

অ্যাপ ইঞ্জিন পাইথন ৩ রানটাইম থার্ড-পার্টি লাইব্রেরি ব্যবহারের জন্য ওভারহেড উল্লেখযোগ্যভাবে কমিয়ে দেয়। যা প্রয়োজন তা হলো requirements.txt এ সেগুলো তালিকাভুক্ত করা। পাইথন ৩ এ বান্ডেলড সার্ভিস ব্যবহার করতে, অ্যাপ ইঞ্জিন SDK প্যাকেজ, appengine-python-standard যোগ করুন। SDK প্যাকেজটি মডিউল ১ থেকে Flask-এ যোগ করে:

flask
appengine-python-standard

app.yaml আপডেট করুন

আপনার app.yaml ফাইলে কনফিগারেশন পরিবর্তনগুলি প্রয়োগ করতে নীচের পদক্ষেপগুলি অনুসরণ করুন:

  1. runtime নির্দেশিকাটি সমর্থিত পাইথন 3 রিলিজ দিয়ে প্রতিস্থাপন করুন; উদাহরণস্বরূপ, পাইথন 3.10 এর জন্য python310 নির্দিষ্ট করুন।
  2. পাইথন ৩-এ threadsafe এবং api_version উভয় নির্দেশিকাই ব্যবহার করা হয়নি, তাই এগুলি মুছে ফেলুন।
  3. এই অ্যাপটিতে শুধুমাত্র স্ক্রিপ্ট হ্যান্ডলার থাকায় handlers বিভাগটি সম্পূর্ণরূপে মুছে ফেলুন। যদি আপনার অ্যাপে স্ট্যাটিক ফাইল হ্যান্ডলার থাকে, তাহলে handlers সেগুলি অক্ষত রাখুন।
  4. Python 3 রানটাইম Python 2 রানটাইমের মতো বিল্ট-ইন থার্ড-পার্টি লাইব্রেরি সমর্থন করে না। যদি আপনার অ্যাপের app.yamllibraries বিভাগ থাকে, তাহলে পুরো বিভাগটি মুছে ফেলুন। (প্রয়োজনীয় প্যাকেজগুলি শুধুমাত্র requirements.txt এ তালিকাভুক্ত করতে হবে, যেমনটি অ-বিল্ট-ইন লাইব্রেরি।) আমাদের নমুনা অ্যাপে libraries বিভাগ নেই, তাই পরবর্তী ধাপে যান।
  5. এটি ব্যবহার করার জন্য 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 অ্যাপের মতোই হওয়া উচিত:

a7a9d2b80d706a2b.png সম্পর্কে

চূড়ান্ত নোট

  • মডিউল ১বি ফোল্ডারে যা আছে তার সাথে আপনার যা আছে তার তুলনা করুন (শেষ)। যদি আপনি পথে কোনও ভুল করে থাকেন এবং প্রয়োজনে সামঞ্জস্য করুন।
  • যদি আপনার অ্যাপটি এখনও webapp2 ব্যবহার করে, তাহলে এই পৃষ্ঠায় মডিউল 0 main.py এর সাথে Module 1b main.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 " যদি আপনার অ্যাপটি মার্কিন যুক্তরাষ্ট্রে হোস্ট করা হয়।

অন্যদিকে, যদি আপনি এই অ্যাপ্লিকেশন বা অন্যান্য সম্পর্কিত মাইগ্রেশন কোডল্যাবগুলি চালিয়ে যেতে না চান এবং সবকিছু সম্পূর্ণরূপে মুছে ফেলতে চান, তাহলে আপনার প্রকল্পটি বন্ধ করে দিন

এই কোডল্যাবের জন্য নির্দিষ্ট

নীচে তালিকাভুক্ত পরিষেবাগুলি এই কোডল্যাবের জন্য অনন্য। আরও তথ্যের জন্য প্রতিটি পণ্যের ডকুমেন্টেশন দেখুন:

পরবর্তী পদক্ষেপ

এখান থেকে যেতে বেশ কয়েকটি দিকনির্দেশনা রয়েছে:

  1. বান্ডেলড পরিষেবা ব্যবহার করে কোড আপডেট করুন যার জন্য আরও কোড পরিবর্তন প্রয়োজন
  2. বান্ডেলড পরিষেবা থেকে ক্লাউড স্ট্যান্ডঅ্যালোন পণ্যগুলিতে স্থানান্তর করুন
  3. অ্যাপ ইঞ্জিন থেকে অন্য ক্লাউড সার্ভারলেস প্ল্যাটফর্মে স্থানান্তর করুন

Blobstore , Mail , এবং Deferred এর মতো অন্যান্য বান্ডেলড পরিষেবা অ্যাক্সেস করার জন্য আরও কোড পরিবর্তন প্রয়োজন। অ্যাপ ইঞ্জিনের লিগ্যাসি বান্ডেলড পরিষেবাগুলি থেকে সরে যাওয়ার উপর দৃষ্টি নিবদ্ধ করে মাইগ্রেশন মডিউলগুলি বিবেচনা করার জন্য অন্তর্ভুক্ত:

  • মডিউল ২ : অ্যাপ ইঞ্জিন এনডিবি থেকে ক্লাউড এনডিবি
  • মডিউল ৭-৯ : অ্যাপ ইঞ্জিন টাস্ককিউ (টাস্ক পুশ) ক্লাউড টাস্কে
  • মডিউল ১২-১৩ : অ্যাপ ইঞ্জিন মেমক্যাশে থেকে ক্লাউড মেমোরিস্টোর
  • মডিউল ১৫-১৬ : অ্যাপ ইঞ্জিন ব্লবস্টোর থেকে ক্লাউড স্টোরেজ
  • মডিউল ১৮-১৯ : অ্যাপ ইঞ্জিন টাস্ককিউ (টাস্ক টানুন) ক্লাউড পাব/সাবে

গুগল ক্লাউডে অ্যাপ ইঞ্জিন এখন আর একমাত্র সার্ভারলেস প্ল্যাটফর্ম নয়। যদি আপনার কাছে একটি ছোট অ্যাপ ইঞ্জিন অ্যাপ থাকে অথবা সীমিত কার্যকারিতা থাকে এবং আপনি এটিকে একটি স্বতন্ত্র মাইক্রোসার্ভিসে রূপান্তর করতে চান, অথবা আপনি একটি একক অ্যাপকে একাধিক পুনঃব্যবহারযোগ্য উপাদানে বিভক্ত করতে চান, তাহলে ক্লাউড ফাংশনে স্থানান্তরিত হওয়ার কথা বিবেচনা করার জন্য এগুলি ভালো কারণ। যদি কন্টেইনারাইজেশন আপনার অ্যাপ্লিকেশন ডেভেলপমেন্ট ওয়ার্কফ্লোর অংশ হয়ে ওঠে, বিশেষ করে যদি এটি একটি CI/CD (ক্রমাগত ইন্টিগ্রেশন/ক্রমাগত ডেলিভারি বা স্থাপনা) পাইপলাইন নিয়ে গঠিত হয়, তাহলে ক্লাউড রানে স্থানান্তরিত করার কথা বিবেচনা করুন। এই পরিস্থিতিগুলি নিম্নলিখিত মডিউল দ্বারা আচ্ছাদিত:

  • অ্যাপ ইঞ্জিন থেকে ক্লাউড ফাংশনে স্থানান্তর করুন: মডিউল ১১ দেখুন
  • অ্যাপ ইঞ্জিন থেকে ক্লাউড রানে মাইগ্রেট করুন: ডকার দিয়ে আপনার অ্যাপটি কন্টেইনারাইজ করতে মডিউল 4 দেখুন, অথবা কন্টেইনার, ডকার জ্ঞান, অথবা Dockerfile ছাড়াই এটি করতে মডিউল 5 দেখুন।

অন্য সার্ভারলেস প্ল্যাটফর্মে স্যুইচ করা ঐচ্ছিক, এবং আমরা কোনও পরিবর্তন করার আগে আপনার অ্যাপ এবং ব্যবহারের ক্ষেত্রে সেরা বিকল্পগুলি বিবেচনা করার পরামর্শ দিচ্ছি।

আপনি পরবর্তীতে কোন মাইগ্রেশন মডিউলটি বিবেচনা করবেন তা নির্বিশেষে, সমস্ত সার্ভারলেস মাইগ্রেশন স্টেশন কন্টেন্ট (কোডল্যাব, ভিডিও, সোর্স কোড [যখন উপলব্ধ]) এর ওপেন সোর্স রেপোতে অ্যাক্সেস করা যেতে পারে। রেপোর README কোন মাইগ্রেশনগুলি বিবেচনা করতে হবে এবং মাইগ্রেশন মডিউলগুলির কোনও প্রাসঙ্গিক "ক্রম" সম্পর্কেও নির্দেশিকা প্রদান করে।

৭. অতিরিক্ত সম্পদ

ডেভেলপারদের জন্য এই বা সম্পর্কিত মাইগ্রেশন মডিউল এবং সম্পর্কিত পণ্যগুলি আরও অন্বেষণ করার জন্য অতিরিক্ত সংস্থানগুলি নীচে তালিকাভুক্ত করা হয়েছে। এর মধ্যে এই বিষয়বস্তুতে প্রতিক্রিয়া প্রদানের স্থান, কোডের লিঙ্ক এবং আপনার জন্য দরকারী মনে হতে পারে এমন বিভিন্ন ডকুমেন্টেশন অন্তর্ভুক্ত রয়েছে।

কোডল্যাব সমস্যা/প্রতিক্রিয়া

এই কোডল্যাবে যদি কোনও সমস্যা খুঁজে পান, তাহলে ফাইল করার আগে অনুগ্রহ করে প্রথমে আপনার সমস্যাটি অনুসন্ধান করুন। নতুন সমস্যা অনুসন্ধান এবং তৈরি করার লিঙ্ক:

মাইগ্রেশন রিসোর্স

মডিউল ১ (START) এবং মডিউল ১বি (FINISH) এর জন্য রেপো ফোল্ডারগুলির লিঙ্কগুলি নীচের টেবিলে পাওয়া যাবে। সমস্ত অ্যাপ ইঞ্জিন কোডল্যাব মাইগ্রেশনের জন্য রেপো থেকেও এগুলি অ্যাক্সেস করা যেতে পারে।

কোডল্যাব

পাইথন ২

পাইথন ৩

মডিউল ১

কোড

নিষিদ্ধ

মডিউল ১৭ (এই কোডল্যাব)

নিষিদ্ধ

কোড (mod1b-ফ্লাস্ক)

অনলাইন রিসোর্স

এই টিউটোরিয়ালের জন্য প্রাসঙ্গিক হতে পারে এমন অনলাইন রিসোর্সগুলি নীচে দেওয়া হল:

অ্যাপ ইঞ্জিন বান্ডেলড পরিষেবা

অ্যাপ ইঞ্জিনের সাধারণ ডক্স

অন্যান্য ক্লাউড তথ্য

ভিডিও

লাইসেন্স

এই কাজটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন ২.০ জেনেরিক লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত।