অ্যাপ ইঞ্জিন (পাইথন 3) দিয়ে শুরু করা

1. ওভারভিউ

befa7a877ccdd35d.png

Google App Engine অ্যাপ্লিকেশনগুলি তৈরি করা সহজ, রক্ষণাবেক্ষণ করা সহজ এবং আপনার ট্র্যাফিক এবং ডেটা সঞ্চয়স্থানের পরিবর্তনের প্রয়োজনে স্কেল করা সহজ৷ অ্যাপ ইঞ্জিনের সাথে, বজায় রাখার জন্য কোন সার্ভার নেই। আপনি কেবল আপনার অ্যাপ্লিকেশন আপলোড করুন এবং এটি যেতে প্রস্তুত।

এই কোডল্যাবে, আপনি শিখবেন কিভাবে ফ্লাস্ক ওয়েব ফ্রেমওয়ার্কের সাথে লেখা একটি সাধারণ পাইথন ওয়েব অ্যাপ স্থাপন করতে হয়। যদিও এই নমুনাটি Flask ব্যবহার করে, আপনি Django , Pyramid , Bottle , এবং web.py সহ অন্যান্য ওয়েব ফ্রেমওয়ার্ক ব্যবহার করতে পারেন।

এই টিউটোরিয়ালটি https://cloud.google.com/appengine/docs/standard/python3/quickstart থেকে অভিযোজিত হয়েছে

আপনি কি শিখবেন

  • গুগল অ্যাপ ইঞ্জিনে কীভাবে একটি সাধারণ পাইথন সার্ভার তৈরি করবেন।
  • সার্ভার ডাউন না নিয়ে কিভাবে কোড আপডেট করবেন।

আপনি কি প্রয়োজন হবে

  • পাইথন ব্যবহার করে পরিচিতি
  • সাধারণ লিনাক্স টেক্সট এডিটর যেমন vim, emacs বা ন্যানো এর সাথে পরিচিতি

সমীক্ষা

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

শুধুমাত্র মাধ্যমে এটি পড়ুন এটি পড়ুন এবং ব্যায়াম সম্পূর্ণ করুন

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

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

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

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

2. সেটআপ এবং প্রয়োজনীয়তা

স্ব-গতিসম্পন্ন পরিবেশ সেটআপ

  1. Google ক্লাউড কনসোলে সাইন-ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ আপনার যদি ইতিমধ্যেই একটি Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • প্রকল্পের নাম এই প্রকল্পের অংশগ্রহণকারীদের জন্য প্রদর্শনের নাম। এটি একটি অক্ষর স্ট্রিং যা Google API দ্বারা ব্যবহৃত হয় না। আপনি সবসময় এটি আপডেট করতে পারেন.
  • প্রোজেক্ট আইডি সমস্ত Google ক্লাউড প্রোজেক্ট জুড়ে অনন্য এবং অপরিবর্তনীয় (সেট করার পরে পরিবর্তন করা যাবে না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত আপনি এটা কি যত্ন না. বেশিরভাগ কোডল্যাবে, আপনাকে আপনার প্রকল্প আইডি উল্লেখ করতে হবে (সাধারণত PROJECT_ID হিসাবে চিহ্নিত)। আপনি যদি জেনারেট করা আইডি পছন্দ না করেন, তাহলে আপনি অন্য একটি এলোমেলো আইডি তৈরি করতে পারেন। বিকল্পভাবে, আপনি নিজের চেষ্টা করতে পারেন, এবং এটি উপলব্ধ কিনা দেখতে পারেন। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রকল্পের সময়কালের জন্য থাকে।
  • আপনার তথ্যের জন্য, একটি তৃতীয় মান আছে, একটি প্রকল্প নম্বর , যা কিছু API ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি মান সম্পর্কে আরও জানুন।
  1. এরপরে, ক্লাউড রিসোর্স/এপিআই ব্যবহার করতে আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে। এই কোডল্যাবের মাধ্যমে চালানোর জন্য খুব বেশি খরচ হবে না, যদি কিছু হয়। এই টিউটোরিয়ালের বাইরে বিলিং এড়াতে সংস্থানগুলি বন্ধ করতে, আপনি আপনার তৈরি করা সংস্থানগুলি মুছতে বা প্রকল্প মুছতে পারেন। নতুন Google ক্লাউড ব্যবহারকারীরা $300 USD বিনামূল্যের ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷

ক্লাউড শেল শুরু করুন

যদিও Google ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালিত হতে পারে, এই কোডল্যাবে আপনি ক্লাউড শেল ব্যবহার করবেন, ক্লাউডে চলমান একটি কমান্ড লাইন পরিবেশ।

ক্লাউড শেল সক্রিয় করুন

  1. ক্লাউড কনসোল থেকে, ক্লাউড শেল সক্রিয় করুন ক্লিক করুন 853e55310c205094.png .

3c1dabeca90e44e5.png

যদি এটি আপনার প্রথমবার ক্লাউড শেল শুরু হয়, তাহলে এটি কী তা বর্ণনা করে আপনাকে একটি মধ্যবর্তী স্ক্রীন উপস্থাপন করা হবে। যদি আপনি একটি মধ্যবর্তী স্ক্রীনের সাথে উপস্থাপিত হন, তবে চালিয়ে যান ক্লিক করুন।

9c92662c6a846a5c.png

ক্লাউড শেলের সাথে সংযোগ করতে এবং সংযোগ করতে এটির মাত্র কয়েক মুহূর্ত লাগবে৷

9f0e51b578fecce5.png

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

একবার ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি দেখতে পাবেন যে আপনি প্রমাণীকৃত হয়েছেন এবং প্রকল্পটি আপনার প্রকল্প আইডিতে সেট করা আছে।

  1. আপনি প্রমাণীকৃত কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud auth list

কমান্ড আউটপুট

 Credentialed Accounts
ACTIVE  ACCOUNT
*       <my_account>@<my_domain.com>

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
  1. gcloud কমান্ড আপনার প্রকল্প সম্পর্কে জানে তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud config list project

কমান্ড আউটপুট

[core]
project = <PROJECT_ID>

যদি এটি না হয়, আপনি এই কমান্ড দিয়ে এটি সেট করতে পারেন:

gcloud config set project <PROJECT_ID>

কমান্ড আউটপুট

Updated property [core/project].

3. ওয়েব অ্যাপ লিখুন

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

অ্যাপ্লিকেশনটির জন্য আপনার $HOME ডিরেক্টরিতে একটি নতুন ফোল্ডার তৈরি করে শুরু করা যাক:

mkdir ~/helloworld
cd ~/helloworld

main.py নামে একটি ফাইল তৈরি করুন:

touch main.py

আপনার পছন্দের কমান্ড লাইন এডিটর (ন্যানো, ভিম, বা ইমাক্স) দিয়ে বা ক্লাউড শেল এডিটর বোতামে ক্লিক করে ফাইলটি সম্পাদনা করুন:

10af7b1a6240e9f4.gif

ক্লাউড শেল সম্পাদকের সাথে ফাইলটি সরাসরি সম্পাদনা করতে, এই কমান্ডটি ব্যবহার করুন:

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

ক্লাউড শেল সম্পাদকের সাথে ফাইলটি সম্পাদনা করতে, এই কমান্ডটি ব্যবহার করুন:

cloudshell edit requirements.txt

requirements.txt

# https://pypi.org/project/Flask
Flask==3.0.2

5. স্থাপনা কনফিগার করুন

অ্যাপ ইঞ্জিনে আপনার ওয়েব অ্যাপ স্থাপন করতে, আপনার একটি app.yaml ফাইল প্রয়োজন। এই কনফিগারেশন ফাইলটি অ্যাপ ইঞ্জিনের জন্য আপনার ওয়েব অ্যাপের সেটিংস সংজ্ঞায়িত করে।

টার্মিনাল থেকে, আপনার প্রোজেক্টের রুট ডিরেক্টরিতে app.yaml ফাইলটি তৈরি করুন এবং সম্পাদনা করুন:

touch app.yaml

ক্লাউড শেল সম্পাদকের সাথে ফাইলটি সম্পাদনা করতে, এই কমান্ডটি ব্যবহার করুন:

cloudshell edit app.yaml

app.yaml

runtime: python312

6. ওয়েব অ্যাপ স্থাপন করুন

টার্মিনাল থেকে, আপনার ডিরেক্টরির বিষয়বস্তু পরীক্ষা করুন:

ls

আপনার কাছে নিম্নলিখিত 3টি ফাইল থাকা উচিত:

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 এ HTTP অনুরোধে সাড়া দেওয়ার জন্য প্রস্তুত।

7. ওয়েব অ্যাপ পরীক্ষা করুন

আপনার ওয়েব অ্যাপটি https://PROJECT_ID.REGION_ID.r.appspot.com এ HTTP অনুরোধে সাড়া দেওয়ার জন্য প্রস্তুত।

প্রথমে, gcloud app describe কমান্ড দিয়ে আপনার ওয়েব অ্যাপ হোস্টনাম পুনরুদ্ধার করুন:

APPENGINE_HOSTNAME=$(gcloud app describe --format "value(defaultHostname)")

এই সহজ HTTP GET অনুরোধের সাথে আপনার ওয়েব অ্যাপ পরীক্ষা করুন:

curl https://$APPENGINE_HOSTNAME

আপনি নিম্নলিখিত উত্তর পেতে হবে:

Hello World!

সারাংশ

পূর্ববর্তী ধাপে, আপনি একটি সাধারণ পাইথন ওয়েব অ্যাপ সেট আপ করেছেন, অ্যাপ ইঞ্জিনে অ্যাপ্লিকেশনটি চালান এবং স্থাপন করেছেন।

8. ওয়েব অ্যাপ আপডেট করুন

আপনার main.py ফাইলে hello() ফাংশন বডি পরিবর্তন করে আপনার ওয়েব অ্যাপ পরিবর্তন করুন।

ক্লাউড শেল সম্পাদকের সাথে ফাইলটি সম্পাদনা করতে, এই কমান্ডটি ব্যবহার করুন:

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. অভিনন্দন!

আপনি পাইথনে আপনার প্রথম অ্যাপ ইঞ্জিন ওয়েব অ্যাপ্লিকেশন লিখতে শিখেছেন!

আরও জানুন

লাইসেন্স

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