সারসংক্ষেপ
এই কোডল্যাবে আপনি শিখবেন কিভাবে অ্যাপ ইঞ্জিন নমনীয় পরিবেশে একটি পাইথন ফ্লাস্ক ওয়েব অ্যাপ্লিকেশন স্থাপন করতে হয়। উদাহরণ অ্যাপ্লিকেশনটি একজন ব্যবহারকারীকে একজন ব্যক্তির মুখের একটি ছবি আপলোড করতে এবং সেই ব্যক্তির খুশি হওয়ার সম্ভাবনা কতটা তা জানতে দেয়৷ অ্যাপ্লিকেশনটি ভিশন, স্টোরেজ এবং ডেটাস্টোরের জন্য Google ক্লাউড API ব্যবহার করে।
অ্যাপ ইঞ্জিন সম্পর্কে
Google App Engine অ্যাপ্লিকেশনগুলি তৈরি করা সহজ, রক্ষণাবেক্ষণ করা সহজ এবং আপনার ট্র্যাফিক এবং ডেটা সঞ্চয়স্থানের পরিবর্তনের প্রয়োজনে স্কেল করা সহজ৷ অ্যাপ ইঞ্জিনের সাথে, বজায় রাখার জন্য কোন সার্ভার নেই। আপনি কেবল আপনার অ্যাপ্লিকেশন আপলোড করুন এবং এটি যেতে প্রস্তুত।
অ্যাপ ইঞ্জিন অ্যাপ্লিকেশন স্বয়ংক্রিয়ভাবে আগত ট্র্যাফিকের উপর ভিত্তি করে স্কেল করে। লোড ব্যালেন্সিং, মাইক্রোসার্ভিসেস, অনুমোদন, SQL এবং NoSQL ডাটাবেস, ট্রাফিক স্প্লিটিং, লগিং, সার্চ, ভার্সনিং, রোল আউট এবং রোল ব্যাকস এবং সিকিউরিটি স্ক্যানিং সবই স্থানীয়ভাবে সমর্থিত এবং অত্যন্ত কাস্টমাইজযোগ্য।
অ্যাপ ইঞ্জিনের নমনীয় পরিবেশ নিম্নলিখিত সমস্ত প্রোগ্রামিং ভাষা সমর্থন করে: C#, Go, Java, Node.js, PHP, Python, এবং Ruby। অ্যাপ ইঞ্জিন নমনীয় Google Compute Engine ভার্চুয়াল মেশিনে চলমান ডকার পাত্রে আপনার অ্যাপ্লিকেশন চালায়। অ্যাপ ইঞ্জিনের স্ট্যান্ডার্ড এনভায়রনমেন্ট হল পাইথন সহ নির্দিষ্ট কিছু ভাষার জন্য একটি বিকল্প বিকল্প। অ্যাপ ইঞ্জিন স্ট্যান্ডার্ড আপনার অ্যাপ্লিকেশনটিকে আরও সীমাবদ্ধ স্যান্ডবক্স পরিবেশে চালায়। আরও তথ্যের জন্য একটি অ্যাপ ইঞ্জিন পরিবেশ নির্বাচন করা পড়ুন।
আপনি কি শিখবেন
- অ্যাপ ইঞ্জিন নমনীয় পরিবেশে কীভাবে একটি সাধারণ ওয়েব অ্যাপ্লিকেশন স্থাপন করবেন
- ভিশন, স্টোরেজ এবং ডেটাস্টোরের জন্য কীভাবে Google ক্লাউড ক্লায়েন্ট লাইব্রেরি অ্যাক্সেস করবেন
- Google ক্লাউড কনসোল এবং Google ক্লাউড SDK কীভাবে বিভিন্ন ক্লাউড সংস্থান পরিচালনা করতে ব্যবহার করবেন
- ক্লাউড শেল কিভাবে ব্যবহার করবেন
আপনি কি প্রয়োজন হবে
- পাইথনের সাথে পরিচিতি
- Vim, Emacs বা Nano এর মতো স্ট্যান্ডার্ড লিনাক্স টেক্সট এডিটরদের সাথে পরিচিতি
প্রকল্প তৈরি
আপনার যদি ইতিমধ্যে একটি Google অ্যাকাউন্ট না থাকে (Gmail বা Google Apps), তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে। Google ক্লাউড প্ল্যাটফর্ম কনসোলে সাইন-ইন করুন ( console.cloud.google.com ) এবং একটি নতুন প্রকল্প তৈরি করুন:
প্রজেক্ট আইডিটি মনে রাখবেন, সমস্ত Google ক্লাউড প্রকল্প জুড়ে একটি অনন্য নাম (উপরের নামটি ইতিমধ্যে নেওয়া হয়েছে এবং আপনার জন্য কাজ করবে না, দুঃখিত!)। এটি পরে এই কোডল্যাবে PROJECT_ID হিসাবে উল্লেখ করা হবে।
বিলিং
এর পরে, Google ক্লাউড সংস্থানগুলি ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে৷
এই কোডল্যাবের মাধ্যমে চালানোর জন্য আপনার কয়েক ডলারের বেশি খরচ করা উচিত নয়, তবে আপনি যদি আরও সংস্থান ব্যবহার করার সিদ্ধান্ত নেন বা আপনি যদি সেগুলি চলমান রেখে দেন তবে এটি আরও বেশি হতে পারে।
Google ক্লাউড প্ল্যাটফর্মের নতুন ব্যবহারকারীরা $300 বিনামূল্যের ট্রায়ালের জন্য যোগ্য৷
যদিও Google ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালিত হতে পারে, এই কোডল্যাবে আমরা Google ক্লাউড শেল ব্যবহার করব, ক্লাউডে চলমান একটি কমান্ড লাইন পরিবেশ। এই ডেবিয়ান-ভিত্তিক ভার্চুয়াল মেশিনটি আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুলের সাথে লোড করা হয়েছে ( gcloud , python , virtualenv , pip এবং আরও অনেক কিছু), এটি একটি ক্রমাগত 5GB হোম ডিরেক্টরি অফার করে এবং Google ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে . এর মানে হল যে এই কোডল্যাবের জন্য আপনার যা দরকার তা হল একটি ব্রাউজার (হ্যাঁ, এটি একটি Chromebook এ কাজ করে)।
Google ক্লাউড শেল সক্রিয় করতে, বিকাশকারী কনসোল থেকে উপরের ডানদিকের বোতামে ক্লিক করুন (এটি পরিবেশের সাথে সংযোগ করতে এবং সংযোগ করতে মাত্র কয়েক মুহূর্ত লাগবে):
একবার ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি দেখতে পাবেন যে আপনি ইতিমধ্যেই প্রমাণীকরণ করেছেন এবং প্রকল্পটি ইতিমধ্যেই আপনার PROJECT_ID এ সেট করা আছে:
gcloud auth list Credentialed accounts: - <myaccount>@<mydomain>.com (active)
gcloud config list project [core] Project = <PROJECT_ID>
যদি কোনো কারণে প্রকল্পটি সেট করা না থাকে, তাহলে কেবল নিম্নলিখিত কমান্ডটি জারি করুন:
gcloud config set project <PROJECT_ID>
আপনার PROJECT_ID খুঁজছেন? সেটআপ ধাপে আপনি কোন প্রজেক্ট আইডি ব্যবহার করেছেন তা দেখুন বা কনসোল ড্যাশবোর্ডে দেখুন:
কমান্ড-লাইনে ক্লাউড শেল-এ, গিথুব সংগ্রহস্থল ক্লোন করতে নিম্নলিখিত কমান্ডটি চালান:
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
python-docs-samples/codelabs/flex_and_vision-এ ডিরেক্টরি পরিবর্তন করুন :
cd python-docs-samples/codelabs/flex_and_vision
আমরা ভিশন, স্টোরেজ এবং ডেটাস্টোর এপিআই ব্যবহার করা শুরু করার আগে, আপনাকে অবশ্যই নিম্নলিখিত কমান্ডগুলির সাথে APIগুলি সক্ষম করতে হবে:
gcloud services enable vision.googleapis.com
gcloud services enable storage-component.googleapis.com
gcloud services enable datastore.googleapis.com
ভিশন, স্টোরেজ এবং ডেটাস্টোর এপিআই-এ অনুরোধ করার জন্য, আপনার পরিষেবা অ্যাকাউন্টের শংসাপত্রের প্রয়োজন হবে। আপনার প্রকল্প থেকে পরিষেবা অ্যাকাউন্টের শংসাপত্রগুলি gcloud টুল ব্যবহার করে তৈরি করা যেতে পারে।
আপনার PROJECT_ID এর জন্য একটি এনভায়রনমেন্ট ভেরিয়েবল সেট করুন, আপনার নিজের প্রোজেক্ট আইডি দিয়ে [YOUR_PROJECT_ID] প্রতিস্থাপন করুন:
export PROJECT_ID=[YOUR_PROJECT_ID]
স্থানীয়ভাবে পরীক্ষা করার সময় Google ক্লাউড এপিআই অ্যাক্সেস করতে একটি পরিষেবা অ্যাকাউন্ট তৈরি করুন:
gcloud iam service-accounts create codelab \ --display-name "My Codelab Service Account"
আপনার নতুন তৈরি পরিষেবা অ্যাকাউন্টের উপযুক্ত অনুমতি দিন:
gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member serviceAccount:codelab@${PROJECT_ID}.iam.gserviceaccount.com \ --role roles/owner
আপনার পরিষেবা অ্যাকাউন্ট তৈরি করার পরে, একটি পরিষেবা অ্যাকাউন্ট কী তৈরি করুন:
gcloud iam service-accounts keys create ~/key.json \ --iam-account codelab@${PROJECT_ID}.iam.gserviceaccount.com
এই কমান্ডটি আপনার হোম ডিরেক্টরিতে key.json নামে একটি JSON ফাইলে সংরক্ষিত একটি পরিষেবা অ্যাকাউন্ট কী তৈরি করে।
উত্পন্ন কী-এর পরম পথ ব্যবহার করে, ক্লাউড শেল -এ আপনার পরিষেবা অ্যাকাউন্ট কী-এর জন্য একটি পরিবেশ পরিবর্তনশীল সেট করুন:
export GOOGLE_APPLICATION_CREDENTIALS="/home/${USER}/key.json"
আপনি ভিশন API প্রমাণীকরণ সম্পর্কে আরও পড়তে পারেন।
আপনার ভার্চুয়াল পরিবেশ শুরু করা এবং নির্ভরতা ইনস্টল করা
virtualenv দিয়ে env নামে একটি বিচ্ছিন্ন পাইথন 3 পরিবেশ তৈরি করুন:
virtualenv -p python3 env
env নামে আপনার সদ্য নির্মিত ভার্চুয়ালেনভ লিখুন:
source env/bin/activate
Requiments.txt ফাইল থেকে আপনার প্রকল্পের জন্য নির্ভরতা ইনস্টল করতে পিপ ব্যবহার করুন:
pip install -r requirements.txt
Requiments.txt ফাইল হল আপনার প্রোজেক্টের জন্য প্রয়োজনীয় প্যাকেজ নির্ভরতার একটি তালিকা। উপরের কমান্ডটি virtualenv- এ এই সমস্ত তালিকাভুক্ত প্যাকেজ নির্ভরতা ডাউনলোড করেছে।
একটি অ্যাপ ইঞ্জিন অ্যাপ তৈরি করা
পরবর্তী, ব্যবহার করে একটি অ্যাপ ইঞ্জিন উদাহরণ তৈরি করুন:
gcloud app create
একটি স্টোরেজ বালতি তৈরি করা
প্রথমে, আপনার PROJECT_ID- এর নামের সমান পরিবেশের পরিবর্তনশীল CLOUD_STORAGE_BUCKET সেট করুন। (সাধারণত সুবিধার উদ্দেশ্যে আপনার বালতিটির নাম আপনার PROJECT_ID হিসাবে রাখার পরামর্শ দেওয়া হয়)।
export CLOUD_STORAGE_BUCKET=${PROJECT_ID}
আমাদের অ্যাপ্লিকেশনটি একটি ক্লাউড স্টোরেজ বালতি ব্যবহার করে, যা আপনাকে ক্লাউড শেল থেকে gsutil নামক একটি টুল দিয়ে তৈরি করতে হবে। নিম্নলিখিত কমান্ডটি চালান, যা আপনার PROJECT_ID এর মতো একই নামের একটি বালতি তৈরি করে।
gsutil mb gs://${PROJECT_ID}
অ্যাপ্লিকেশন চলমান
python main.py
একবার অ্যাপ্লিকেশন শুরু হলে, ওয়েব প্রিভিউ আইকনে ক্লিক করুনক্লাউড শেল টুলবারে এবং "পোর্ট 8080 এর পূর্বরূপ" নির্বাচন করুন।
আপনার ব্রাউজারে একটি ট্যাব খোলে এবং আপনি যে সার্ভারটি শুরু করেছেন তার সাথে সংযোগ স্থাপন করে৷ আপনি এই মত কিছু দেখতে হবে:
একটি মানুষের মুখ রয়েছে এমন একটি ফটো আপলোড করার চেষ্টা করুন৷ ফাইল চয়ন করুন বোতামে ক্লিক করুন, আপনার কম্পিউটার থেকে একটি চিত্র চয়ন করুন এবং তারপরে জমা দিন ক্লিক করুন।
একটি ছবি আপলোড করার পরে, আপনি এই মত কিছু দেখতে হবে:
নমুনা কোড লেআউট
নমুনা নিম্নলিখিত বিন্যাস আছে:
templates/
homepage.html /* HTML template that uses Jinja2 */
app.yaml /* App Engine application configuration file */
main.py /* Python Flask web application */
requirements.txt /* List of dependencies for the project */
main.py
এই পাইথন ফাইলটি একটি ফ্লাস্ক ওয়েব অ্যাপ্লিকেশন। অ্যাপ্লিকেশনটি ব্যবহারকারীদের ফটো জমা দিতে দেয় (বিশেষত মুখের), যা ক্লাউড স্টোরেজে সংরক্ষণ করা হয় এবং ক্লাউড ভিশন API-এর মুখ সনাক্তকরণ বৈশিষ্ট্য ব্যবহার করে বিশ্লেষণ করা হয়। প্রতিটি ফটো সম্পর্কে মূল তথ্য ডেটাস্টোরে সংরক্ষণ করা হয়, Google ক্লাউড প্ল্যাটফর্মের NoSQL ডাটাবেস, যেখানে প্রতিটি ব্যবহারকারী ওয়েবসাইট পরিদর্শন করার সময় এটি অ্যাক্সেস করা হয়।
এই অ্যাপ্লিকেশনটি স্টোরেজ, ডেটাস্টোর এবং ভিশনের জন্য Google ক্লাউড প্ল্যাটফর্ম ক্লায়েন্ট লাইব্রেরি ব্যবহার করে। এই ক্লায়েন্ট লাইব্রেরিগুলি আপনার প্রিয় প্রোগ্রামিং ভাষাগুলি থেকে ক্লাউড এপিআই অ্যাক্সেস করা সহজ করে তোলে।
কোডের কিছু মূল স্নিপেট দেখে নেওয়া যাক।
শীর্ষে আমদানি বিভাগটি যেখানে আমরা আমাদের কোডের জন্য প্রয়োজনীয় বিভিন্ন প্যাকেজ আমদানি করি। ডেটাস্টোর, স্টোরেজ এবং ভিশনের জন্য আমরা এইভাবে আমাদের Google ক্লাউড ক্লায়েন্ট লাইব্রেরি আমদানি করি:
from google.cloud import datastore
from google.cloud import storage
from google.cloud import vision
কোন ব্যবহারকারী ওয়েবসাইটের রুট ইউআরএল ভিজিট করলে কী ঘটে তার কোড এখানে দেওয়া হল। আমরা একটি ডেটাস্টোর ক্লায়েন্ট অবজেক্ট তৈরি করি, যা ডেটাস্টোর ক্লায়েন্ট লাইব্রেরি অ্যাক্সেস করতে ব্যবহৃত হয়। আমরা তখন Datastore-এ একটি ক্যোয়ারী চালাই ধরনের মুখের সত্তার জন্য। অবশেষে, আমরা আমাদের এইচটিএমএল টেমপ্লেট রেন্ডার করি, একটি ভেরিয়েবল হিসাবে ডেটাস্টোর থেকে আমরা যে image_entities বের করি তা পাস করে।
@app.route('/')
def homepage():
# Create a Cloud Datastore client.
datastore_client = datastore.Client()
# Use the Cloud Datastore client to fetch information from Datastore about
# each photo.
query = datastore_client.query(kind='Faces')
image_entities = list(query.fetch())
# Return a Jinja2 HTML template and pass in image_entities as a parameter.
return render_template('homepage.html', image_entities=image_entities)
আসুন দেখে নেওয়া যাক কিভাবে ডেটাস্টোরে এন্টিটি সেভ করা হয়। Datastore হল Google Cloud এর NoSQL ডাটাবেস সমাধান। সত্তা নামক বস্তুতে ডেটা সংরক্ষণ করা হয়। প্রতিটি সত্তাকে একটি অনন্য সনাক্তকরণ কী বরাদ্দ করা হয়, যা একটি ধরণের এবং একটি কী নামের স্ট্রিং ব্যবহার করে তৈরি করা যেতে পারে। একটি ধরনের সত্তা কি ধরনের জন্য একটি সাংগঠনিক বালতি হয়. উদাহরণস্বরূপ, আমরা ফটো, মানুষ এবং প্রাণীর জন্য ধরণের সেট আপ করতে চাই।
প্রতিটি সত্তার একাধিক ডেভেলপার-সংজ্ঞায়িত বৈশিষ্ট্য থাকতে পারে, যেগুলির পূর্ণসংখ্যা, ফ্লোট, স্ট্রিং, তারিখ, বা বাইনারি ডেটা সহ বিভিন্ন ধরণের মান থাকতে পারে৷
# Create a Cloud Datastore client.
datastore_client = datastore.Client()
# Fetch the current date / time.
current_datetime = datetime.now()
# The kind for the new entity.
kind = 'Faces'
# The name/ID for the new entity.
name = blob.name
# Create the Cloud Datastore key for the new entity.
key = datastore_client.key(kind, name)
# Construct the new entity using the key. Set dictionary values for entity
# keys blob_name, storage_public_url, timestamp, and joy.
entity = datastore.Entity(key)
entity['blob_name'] = blob.name
entity['image_public_url'] = blob.public_url
entity['timestamp'] = current_datetime
entity['joy'] = face_joy
# Save the new entity to Datastore.
datastore_client.put(entity)
স্টোরেজ এবং ভিশন ক্লায়েন্ট লাইব্রেরিগুলি ডেটাস্টোরের অনুরূপ পদ্ধতিতে প্রোগ্রাম্যাটিকভাবে অ্যাক্সেস করা যেতে পারে। সমস্ত নমুনা কোড অন্বেষণ করতে আপনি vim , emacs বা ন্যানো ব্যবহার করে main.py ফাইলটি নিজেই খুলতে পারেন।
ফ্লাস্ক সম্পর্কে আরও জানুন http://flask.pocoo.org/ এ।
ক্লায়েন্ট লাইব্রেরি সম্পর্কে আরও জানুন https://googlecloudplatform.github.io/google-cloud-python/ এ।
homepage.html
ফ্লাস্ক ওয়েব ফ্রেমওয়ার্ক জিনজা 2 কে একটি টেমপ্লেট ইঞ্জিন হিসাবে ব্যবহার করে। এটি আমাদেরকে main.py থেকে homepage.html- এ ভেরিয়েবল এবং এক্সপ্রেশন পাস করতে দেয় যা পৃষ্ঠাটি রেন্ডার হওয়ার পরে মান দিয়ে প্রতিস্থাপিত হয়।
Jinja2 সম্পর্কে আরও জানুন http://jinja.pocoo.org/docs/2.9/templates/ এ।
এই Jinja2 HTML টেমপ্লেট ব্যবহারকারীদের ডাটাবেসে ফটো জমা দেওয়ার জন্য একটি ফর্ম প্রদর্শন করে। এটি ফাইলের নাম, আপলোডের তারিখ/সময় এবং ভিশন API দ্বারা সনাক্ত করা মুখটি খুশি হওয়ার সম্ভাবনা সহ পূর্বে জমা দেওয়া প্রতিটি চিত্র প্রদর্শন করে।
homepage.html
<h1>Google Cloud Platform - Face Detection Sample</h1>
<p>This Python Flask application demonstrates App Engine Flexible, Google Cloud
Storage, Datastore, and the Cloud Vision API.</p>
<br>
<html>
<body>
<form action="upload_photo" method="POST" enctype="multipart/form-data">
Upload File: <input type="file" name="file"><br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
অ্যাপ ইঞ্জিন নমনীয় একটি অ্যাপ্লিকেশনের স্থাপনার কনফিগারেশন বর্ণনা করতে app.yaml নামক একটি ফাইল ব্যবহার করে। এই ফাইলটি উপস্থিত না থাকলে, অ্যাপ ইঞ্জিন স্থাপনার কনফিগারেশন অনুমান করার চেষ্টা করবে৷ যাইহোক, এই ফাইলটি প্রদান করা একটি ভাল ধারণা।
এরপরে, আপনি আপনার পছন্দের vim , nano , বা emacs- এর একটি সম্পাদক ব্যবহার করে app.yaml পরিবর্তন করবেন। আমরা ন্যানো সম্পাদক ব্যবহার করব:
nano app.yaml
app.yaml
runtime: python
env: flex
entrypoint: gunicorn -b :$PORT main:app
runtime_config:
python_version: 3
env_variables:
CLOUD_STORAGE_BUCKET: <your-cloud-storage-bucket>
এটি একটি পাইথন 3 অ্যাপ ইঞ্জিন ফ্লেক্স অ্যাপ্লিকেশন স্থাপন করার জন্য প্রয়োজনীয় মৌলিক কনফিগারেশন। আপনি এখানে অ্যাপ ইঞ্জিন কনফিগার করার বিষয়ে আরও জানতে পারেন।
একবার আপনার app.yaml খুললে, আপনার ক্লাউড স্টোরেজ বাকেটের নাম দিয়ে < your-Cloud-storage-bucket > প্রতিস্থাপন করুন। (আপনি যদি আপনার ক্লাউড স্টোরেজ বাকেটের নাম ভুলে গিয়ে থাকেন, তাহলে Qwiklabs থেকে GCP প্রজেক্ট আইডি কপি করুন, যা একই)। env_variables বিভাগটি এনভায়রনমেন্ট ভেরিয়েবল সেট আপ করে যেগুলি main.py তে ব্যবহার করা হবে একবার অ্যাপ্লিকেশনটি স্থাপন করা হলে।
আপনি এখন ( Ctrl + x ) ব্যবহার করে ন্যানো ফাইলটি সংরক্ষণ এবং বন্ধ করতে পারেন, যা অনুরোধ করবে:
একটি অক্ষর y টাইপ করুন এবং তারপরে নিম্নলিখিত প্রম্পটের জন্য ফাইলের নাম নিশ্চিত করতে আরও একবার ENTER কী টিপুন:
gcloud ব্যবহার করে অ্যাপ ইঞ্জিনে আপনার অ্যাপ স্থাপন করুন:
gcloud app deploy
অ্যাপ্লিকেশনটি মোতায়েন করার পরে, আপনি আপনার ওয়েব ব্রাউজারে https://< PROJECT_ID >.appspot.com URLটি খুলে এটি দেখতে পারেন৷
সারসংক্ষেপ
এই ধাপে, আপনি একটি পাইথন ওয়েব অ্যাপ্লিকেশন সেট আপ করেছেন এবং এটিকে অ্যাপ ইঞ্জিন নমনীয় পরিবেশে স্থাপন করেছেন।
আপনি শিখেছেন কিভাবে আপনার প্রথম অ্যাপ ইঞ্জিন নমনীয় ওয়েব অ্যাপ্লিকেশন লিখতে এবং স্থাপন করতে হয়!
পরিষ্কার কর
এই কুইকস্টার্টে ব্যবহৃত রিসোর্সের জন্য আপনার Google ক্লাউড প্ল্যাটফর্ম অ্যাকাউন্টে চার্জ এড়াতে:
- ক্লাউড প্ল্যাটফর্ম কনসোলে যান।
- আপনি যে প্রকল্পটি বন্ধ করতে চান সেটি নির্বাচন করুন, তারপরে শীর্ষে 'মুছুন' এ ক্লিক করুন: এটি মুছে ফেলার জন্য প্রকল্পের সময়সূচী করে।
আরও জানুন
- Google ক্লাউড প্ল্যাটফর্মে পাইথন: https://cloud.google.com/python/
- পাইথনের জন্য অ্যাপ ইঞ্জিন নমনীয় ডকুমেন্টেশন: https://cloud.google.com/appengine/docs/flexible/python/
- পাইথন ক্লায়েন্ট লাইব্রেরির জন্য ডকুমেন্টেশন: ডেটাস্টোর , স্টোরেজ এবং ভিশন
- আরও পাইথন কোড নমুনা: https://cloud.google.com/python/samples
লাইসেন্স
এই কাজটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন 2.0 জেনেরিক লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত।