1. সংক্ষিপ্ত বিবরণ
এই ল্যাবে, আপনি শিখবেন কিভাবে ক্লাউড স্টোরেজ বাকেট ইভেন্ট এবং Eventarc ব্যবহার করে ইভেন্ট প্রসেসিং শুরু করতে হয়। আপনি ডেটা বিশ্লেষণ এবং ছবি প্রক্রিয়া করার জন্য ক্লাউড রান ফাংশন ব্যবহার করবেন। ফাংশনটি গুগলের ভিশন API ব্যবহার করবে এবং ফলাফল প্রাপ্ত ছবি ক্লাউড স্টোরেজ বাকেটে সংরক্ষণ করবে।

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



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

পরিবেশ সেটআপ
- ক্লাউড শেল টার্মিনালে নীচের কমান্ডগুলি চালিয়ে একটি প্রকল্প এবং সংস্থান-সম্পর্কিত পরিবেশ ভেরিয়েবল তৈরি করুন।
export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NAME=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
export REGION=us-east1
export UPLOAD_BUCKET_NAME=menu-item-uploads-$PROJECT_ID
export UPLOAD_BUCKET=gs://menu-item-uploads-$PROJECT_ID
export BUCKET_THUMBNAILS=gs://menu-item-thumbnails-$PROJECT_ID
export MENU_SERVICE_NAME=menu-service
export USER_EMAIL=$(gcloud config list account --format "value(core.account)")
- ল্যাবের জন্য প্রয়োজনীয় API গুলি সক্ষম করুন
gcloud services enable \
vision.googleapis.com \
cloudfunctions.googleapis.com \
pubsub.googleapis.com \
cloudbuild.googleapis.com \
logging.googleapis.com \
eventarc.googleapis.com \
artifactregistry.googleapis.com \
run.googleapis.com \
--quiet
- সংগ্রহস্থলটি ক্লোন করুন
git clone https://github.com/GoogleCloudPlatform/cymbal-eats.git && cd cymbal-eats/cloud-functions
৩. ক্লাউড স্টোরেজ বাকেট কনফিগার করুন
স্টোরেজ বালতি তৈরি করুন
আপনার ইমেজ প্রসেসিং পাইপলাইনের জন্য আপলোড এবং থাম্বনেইল ক্লাউড স্টোরেজ বাকেট তৈরি করুন।
দুটি বাকেট তৈরি করতে gsutil mb কমান্ড এবং একটি অনন্য নাম ব্যবহার করুন:
- যেখানে ছবিগুলি প্রথমে আপলোড করা হবে সেই বাকেট আপলোড করুন
- তৈরি করা থাম্বনেইল ছবি সংরক্ষণের জন্য থাম্বনেইল বাকেট
নতুন ছবি আপলোড করার জন্য একটি বাকেট তৈরি করুন:
gsutil mb -p $PROJECT_ID -l $REGION $UPLOAD_BUCKET
উদাহরণ আউটপুট:
Creating gs://menu-item-uploads-cymbal-eats-8399-3119/...
তৈরি হওয়া থাম্বনেইল সংরক্ষণের জন্য একটি বাকেট তৈরি করুন:
gsutil mb -p $PROJECT_ID -l $REGION $BUCKET_THUMBNAILS
উদাহরণ আউটপুট:
Creating gs://menu-item-thumbnails-cymbal-eats-8399-3119/...
বাকেট অনুমতি আপডেট করুন
ব্যবহারকারীদের পড়ার অনুমতি দেওয়ার জন্য স্টোরেজ বাকেটের অনুমতিগুলি আপডেট করুন।
আপনার বাকেটের বস্তুগুলি পড়ার এবং লেখার অনুমতি দিতে gsutil iam ch কমান্ডটি ব্যবহার করুন:
gsutil iam ch allUsers:objectViewer $UPLOAD_BUCKET
gsutil iam ch allUsers:objectViewer $BUCKET_THUMBNAILS
উদাহরণ আউটপুট
Updated IAM policy for project [cymbal-eats-8399-3119]. [...]
৪. পরিষেবা অ্যাকাউন্ট কনফিগার করুন
থাম্বনেইল প্রক্রিয়া করার জন্য ক্লাউড ফাংশনের জন্য একটি কাস্টম পরিষেবা অ্যাকাউন্ট তৈরি করুন:
export CF_SERVICE_ACCOUNT=thumbnail-service-sa
gcloud iam service-accounts create ${CF_SERVICE_ACCOUNT}
আর্টিফ্যাক্ট রেজিস্ট্রি থেকে রিড অপারেশনের অনুমতি দেওয়ার জন্য artifactregistry.reader ভূমিকাটি মঞ্জুর করুন:
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member "serviceAccount:${CF_SERVICE_ACCOUNT}@${PROJECT_ID}.iam.gserviceaccount.com" \
--role "roles/artifactregistry.reader"
থাম্বনেইল বাকেটে জেনারেট করা ছবি সংরক্ষণের জন্য storage.objectCreator ভূমিকাটি মঞ্জুর করুন:
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member "serviceAccount:${CF_SERVICE_ACCOUNT}@${PROJECT_ID}.iam.gserviceaccount.com" \
--role "roles/storage.objectCreator"
ক্লাউড রান পরিষেবা আহ্বানের অনুমতি দেওয়ার জন্য run.invoker ভূমিকাটি মঞ্জুর করুন:
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member "serviceAccount:${CF_SERVICE_ACCOUNT}@${PROJECT_ID}.iam.gserviceaccount.com" \
--role "roles/run.invoker"
প্রোভাইডারদের কাছ থেকে ইভেন্ট গ্রহণের অনুমতি দেওয়ার জন্য eventarc.eventReceiver ভূমিকাটি মঞ্জুর করুন:
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member "serviceAccount:${CF_SERVICE_ACCOUNT}@${PROJECT_ID}.iam.gserviceaccount.com" \
--role "roles/eventarc.eventReceiver"
ক্লাউড স্টোরেজ পরিষেবা অ্যাকাউন্টকে pubsub.publisher ভূমিকা প্রদান করুন। এটি পরিষেবা অ্যাকাউন্টকে ছবি আপলোড করার সময় ইভেন্টগুলি প্রকাশ করার অনুমতি দেবে।
GCS_SERVICE_ACCOUNT=$(gsutil kms serviceaccount -p $PROJECT_NUMBER)
gcloud projects add-iam-policy-binding $PROJECT_NUMBER \
--member "serviceAccount:$GCS_SERVICE_ACCOUNT" \
--role "roles/pubsub.publisher"
৫. ইমেজ প্রসেসিং ফাংশন ওভারভিউ
ক্লাউড স্টোরেজ থেকে একটি ছবি ডাউনলোড করার জন্য একটি ফাংশন তৈরি করুন, ছবিটির আকার পরিবর্তন করুন এবং ছবিটিকে ক্লাউড স্টোরেজে আবার আপলোড করুন। ফাংশনটি ছবিতে একটি বর্ণনা লেবেল বরাদ্দ করার জন্য Vision API কল করবে। ফাংশনটি বর্ণনা লেবেলটি পরীক্ষা করবে। যদি লেবেলটি ছবিটিকে "খাদ্য" হিসাবে চিহ্নিত করে তবে মেনু আইটেমের ছবি এবং থাম্বনেইল আপডেট করার জন্য একটি ইভেন্ট মেনু পরিষেবাতে পাঠানো হবে।

একটি ফাংশন ট্রিগার করা
ক্লাউড স্টোরেজ ফাংশনগুলি ক্লাউড স্টোরেজ থেকে পাব/সাব বিজ্ঞপ্তির উপর ভিত্তি করে তৈরি এবং একই ধরণের ইভেন্ট সমর্থন করে:
এই ল্যাবে, ক্লাউড স্টোরেজে কোনও বস্তু চূড়ান্ত হলে আপনি একটি ফাংশন স্থাপন এবং ট্রিগার করবেন।
অবজেক্ট চূড়ান্তকরণ
যখন কোনও ক্লাউড স্টোরেজ অবজেক্টের "লেখা" সফলভাবে চূড়ান্ত করা হয় তখন অবজেক্ট ফাইনালাইজ ইভেন্ট ট্রিগার হয়। বিশেষ করে, এর অর্থ হল একটি নতুন অবজেক্ট তৈরি করা বা বিদ্যমান অবজেক্টকে ওভাররাইট করা এই ইভেন্টটিকে ট্রিগার করে। এই ট্রিগার দ্বারা আর্কাইভ এবং মেটাডেটা আপডেট ক্রিয়াকলাপ উপেক্ষা করা হয়।
৬. ক্লাউড স্টোরেজ একীভূত করুন
ক্লাউড স্টোরেজ হল গুগল ক্লাউডে আপনার অবজেক্ট সংরক্ষণের জন্য একটি পরিষেবা। অবজেক্ট হল একটি অপরিবর্তনীয় ডেটা যা যেকোনো ফর্ম্যাটের ফাইল ধারণ করে। আপনি বাকেট নামক পাত্রে অবজেক্ট সংরক্ষণ করেন। সমস্ত বাকেট একটি প্রকল্পের সাথে যুক্ত, এবং আপনি আপনার প্রকল্পগুলিকে একটি সংস্থার অধীনে গোষ্ঠীভুক্ত করতে পারেন। ক্লায়েন্ট লাইব্রেরি এবং API গুলি ক্লাউড স্টোরেজের সাথে একীভূত করে।
এই ল্যাবে, আপনি ক্লাউড স্টোরেজে অবজেক্ট পড়তে এবং লিখতে ক্লায়েন্ট লাইব্রেরি ব্যবহার করবেন।
ক্লায়েন্ট লাইব্রেরি ইনস্টল করা হচ্ছে
ক্লাউড ক্লায়েন্ট লাইব্রেরিগুলি অনেক জনপ্রিয় প্রোগ্রামিং ভাষায় পাওয়া যায়। লাইব্রেরিগুলি ব্যবহার শুরু করতে আপনাকে ক্লায়েন্ট লাইব্রেরি ইনস্টল করতে হবে।
ক্লায়েন্ট লাইব্রেরি ব্যবহার করে
বাস্তবায়নের বিশদগুলি মূলত প্রোগ্রামিং ভাষার উপর নির্ভর করে। আপনার অ্যাপ্লিকেশনে ক্লায়েন্ট লাইব্রেরি ব্যবহার করার জন্য, প্রথম ধাপ হল ক্লাউড স্টোরেজ নির্ভরতা আমদানি করা। উদাহরণস্বরূপ, Node.js প্রকল্পে, package.json ফাইলে আমদানি যোগ করা হয়। নীচের স্নিপেটটি এই ল্যাবের package.json ফাইল বিজ্ঞপ্তিটি দেখায়।
প্যাকেজ.জেসন
{
"name": "thumbnail-service",
"version": "0.1.0",
"dependencies": {
"@google-cloud/functions-framework": "^3.0.0",
"@google-cloud/storage": "^5.18.2",
"@google-cloud/vision": "^2.4.2",
...
}
}
একটি CloudEvent কলব্যাক নিবন্ধন করুন
ফাংশন ফ্রেমওয়ার্কের সাথে একটি CloudEvent কলব্যাক নিবন্ধন করুন যা বাকেটে একটি নতুন ছবি আপলোড করা হলে ক্লাউড স্টোরেজ দ্বারা ট্রিগার হবে।
ইনডেক্স.জেএস
functions.cloudEvent('process-thumbnails', async (cloudEvent) => {
console.log(`Event ID: ${cloudEvent.id}`);
console.log(`Event Type: ${cloudEvent.type}`);
...
একটি স্টোরেজ রেফারেন্স অবজেক্ট তৈরি করা হচ্ছে
ক্লায়েন্ট লাইব্রেরিগুলি আমদানি করার পরে, আপনাকে একটি নতুন স্টোরেজ ক্লায়েন্ট এবং আপনার অ্যাপ্লিকেশন যে বাকেটগুলির সাথে ইন্টারঅ্যাক্ট করবে তা তৈরি করতে হবে।
ইনডেক্স.জেএস
const storage = new Storage(); const bucket = storage.bucket(file.bucket); const thumbBucket = storage.bucket(process.env.BUCKET_THUMBNAILS);
ক্লাউড স্টোরেজ অবজেক্ট ডাউনলোড করুন
ইনডেক্স.জেএস
await bucket.file(file.name).download({
destination: originalFile
});
ক্লাউড স্টোরেজে অবজেক্ট আপলোড করুন
আপনি ক্লাউড স্টোরেজে তিনটি উপায়ে আপলোড অনুরোধ পাঠাতে পারেন: একক-অনুরোধ, পুনঃসূচনাযোগ্য অথবা XML API মাল্টিপার্ট আপলোড। বড় আপলোড বা স্ট্রিমিং আপলোডের জন্য পুনঃসূচনাযোগ্য আপলোড ব্যবহার করুন। XML API ফাইলগুলি অংশে আপলোড করা হয় এবং একটি একক বস্তু হিসাবে একত্রিত করা হয়। ছোট বস্তুর জন্য, একক-অনুরোধ আপলোড ব্যবহার করুন।
নিচের কোডটি একক-অনুরোধ আপলোড ব্যবহার করে ক্লাউড স্টোরেজে একটি ছবি আপলোড করে।
ইনডেক্স.জেএস
const thumbnailImage = await thumbBucket.upload(thumbFile);
৭. ভিশন এপিআই ইন্টিগ্রেট করুন
ক্লাউড ভিশন ডেভেলপারদের সহজেই অ্যাপ্লিকেশনের মধ্যে দৃষ্টি সনাক্তকরণ বৈশিষ্ট্যগুলিকে একীভূত করতে দেয়, যার মধ্যে রয়েছে চিত্র লেবেলিং, মুখ এবং ল্যান্ডমার্ক সনাক্তকরণ, অপটিক্যাল চরিত্র স্বীকৃতি (ওসিআর) এবং স্পষ্ট সামগ্রীর ট্যাগিং।
ক্লায়েন্ট লাইব্রেরি ইনস্টল করা হচ্ছে
ক্লাউড ক্লায়েন্ট লাইব্রেরিগুলি অনেক জনপ্রিয় প্রোগ্রামিং ভাষায় পাওয়া যায়। লাইব্রেরিগুলি ব্যবহার শুরু করতে আপনাকে ক্লায়েন্ট লাইব্রেরি ইনস্টল করতে হবে।
একটি ইমেজ অ্যানোটেটর ক্লায়েন্ট তৈরি করুন
অফিসিয়াল ক্লায়েন্ট SDK ব্যবহার করে Google API অ্যাক্সেস করতে, আপনাকে API-এর আবিষ্কার নথির উপর ভিত্তি করে একটি পরিষেবা অবজেক্ট তৈরি করতে হবে, যা SDK-তে API-এর বর্ণনা দেয়। আপনার শংসাপত্র ব্যবহার করে আপনাকে Vision API-এর আবিষ্কার পরিষেবা থেকে এটি আনতে হবে।
ইনডেক্স.জেএস
const client = new vision.ImageAnnotatorClient();
একটি ভিশন এপিআই অনুরোধ তৈরি করুন
ভিশন এপিআই আপনার অনুরোধের মূল অংশে বেস৬৪ এনকোডেড স্ট্রিং হিসেবে ইমেজ ফাইলের বিষয়বস্তু পাঠিয়ে একটি ইমেজ ফাইলে বৈশিষ্ট্য সনাক্তকরণ সম্পাদন করতে পারে।
আপনার ছবি টীকা করার জন্য ইমেজ রিসোর্স ব্যবহার করে একটি অনুরোধ তৈরি করতে। এই API-তে একটি অনুরোধ একটি অনুরোধ তালিকা সহ একটি বস্তুর আকার ধারণ করে। এই তালিকার প্রতিটি আইটেমে দুটি বিট তথ্য রয়েছে:
- বেস৬৪-এনকোডেড ছবির ডেটা
- সেই ছবিটি সম্পর্কে আপনি যে বৈশিষ্ট্যগুলি টীকা করতে চান তার একটি তালিকা।
ইনডেক্স.জেএস
const client = new vision.ImageAnnotatorClient();
const visionRequest = {
image: { source: { imageUri: `gs://${file.bucket}/${file.name}` } },
features: [
{ type: 'LABEL_DETECTION' },
]
};
const visionPromise = client.annotateImage(visionRequest);
৮. ক্লাউড রান ফাংশন স্থাপন করুন
এই ছবির আকার পরিবর্তন পরিষেবাটি বৃহত্তর সিম্বাল ইটস সিস্টেমের অংশ। এই বিভাগে, আপনি কেবল ছবি প্রক্রিয়াকরণ বৈশিষ্ট্যের সাথে সম্পর্কিত উপাদানগুলি স্থাপন করবেন। সম্পূর্ণ ইনস্টলেশনটিতে ছবি আপলোড করার জন্য একটি UI এবং ফলস্বরূপ মেটাডেটা সংরক্ষণ করার জন্য একটি ডাউনস্ট্রিম অনুরোধ অন্তর্ভুক্ত রয়েছে। এই ক্ষমতাগুলি এই ল্যাবের অংশ হিসাবে ইনস্টল করা নেই।
ফাংশন স্থাপনের সময় নিম্নলিখিত উপাদানগুলি তৈরি করা হবে:
- ক্লাউড রান ফাংশন
- ইভেন্টার্ক ট্রিগার
- প্রকাশক/উপ বিষয় এবং সাবস্ক্রিপশন
ক্লাউডশেল টার্মিনালে, menu-item-uploads-$PROJECT_ID এ একটি ট্রিগার বাকেট সহ ক্লাউড রান ফাংশন স্থাপন করতে নীচের কমান্ডটি চালান:
ক্লাউড রান ফাংশন সরাসরি ক্লাউড রানে স্থাপন করতে, আপনাকে প্রথমে ফাংশনটি স্থাপন করতে হবে এবং তারপর এর জন্য একটি ট্রিগার তৈরি করতে হবে।
ক্লাউড রান ফাংশন স্থাপন করুন:
gcloud beta run deploy process-thumbnails \
--source=thumbnail \
--function process-thumbnails \
--region $REGION \
--base-image google-22-full/nodejs20 \
--no-allow-unauthenticated \
--project=$PROJECT_ID \
--service-account="${CF_SERVICE_ACCOUNT}@${PROJECT_ID}.iam.gserviceaccount.com" \
--set-env-vars=BUCKET_THUMBNAILS=$BUCKET_THUMBNAILS,MENU_SERVICE_URL=$MENU_SERVICE_URL \
--max-instances=1 \
--quiet
উদাহরণ আউটপুট:
Done. Service [process-thumbnails] revision [process-thumbnails-00001-abc] has been deployed and is serving 100 percent of traffic. Service URL: https://process-thumbnails-000000000.us-east1.run.app
ট্রিগার তৈরি করুন:
gcloud eventarc triggers create process-thumbnails-trigger \
--location=$REGION \
--destination-run-service=process-thumbnails \
--destination-run-region=$REGION \
--event-filters="type=google.cloud.storage.object.v1.finalized" \
--event-filters="bucket=$UPLOAD_BUCKET_NAME" \
--service-account="${CF_SERVICE_ACCOUNT}@${PROJECT_ID}.iam.gserviceaccount.com"
উদাহরণ আউটপুট:
Creating trigger [process-thumbnails-trigger] in project [qwiklabs-gcp-02-53f8532696e1], location [us-east1]...done. WARNING: It may take up to 2 minutes for the new trigger to become active.
যদি অনুমতি সংক্রান্ত সমস্যার কারণে ট্রিগার স্থাপনা ব্যর্থ হয় - তাহলে পূর্ববর্তী ধাপ থেকে IAM পরিবর্তনগুলি প্রচারিত হওয়ার জন্য অপেক্ষা করুন। সাধারণত ১-২ মিনিট সময় লাগে, এবং তারপর আবার স্থাপনার চেষ্টা করুন।
উদাহরণ ত্রুটি আউটপুট:
...If you recently started to use Eventarc, it may take a few minutes before all necessary permissions are propagated to the Service Agent... [...]
ক্লাউড কনসোলে, ফাংশনের জন্য তৈরি ক্লাউড রান পরিষেবাটি পর্যালোচনা করুন:

ক্লাউড কনসোলে, ফাংশনের জন্য তৈরি করা Eventarc ট্রিগারটি পর্যালোচনা করুন:

ক্লাউড কনসোলে, Eventarc ট্রিগারের জন্য তৈরি করা পাব/সাব টপিক এবং সাবস্ক্রিপশন পর্যালোচনা করুন:


৯. এন্ড-টু-এন্ড সমাধান পরীক্ষা এবং যাচাই করুন
ক্লাউড স্টোরেজে একটি নতুন ছবি আপলোড করুন এবং ছবিগুলি বিশ্লেষণ করার সাথে সাথে পাইপলাইনের অগ্রগতি পর্যবেক্ষণ করুন। আপনি ক্লাউড ফাংশন লগ পর্যবেক্ষণ করে এন্ড-টু-এন্ড সমাধানটি পরীক্ষা করবেন।
একটি ছবি আপলোড করা হচ্ছে

- এই ছবিটি আপনার স্থানীয় মেশিনে সংরক্ষণ করুন।
- 1.jpg ফাইলটির নাম পরিবর্তন করুন।
- ক্লাউড স্টোরেজ কনসোলটি খুলুন
- মেনু-আইটেম-আপলোড-... বাকেটটিতে ক্লিক করুন।
- ফাইল আপলোড করুন ক্লিক করুন
- স্টোরেজ বাকেটে 1.jpg আপলোড করুন।
- ক্লাউড কনসোলে, ক্লাউড রানে নেভিগেট করুন
- প্রসেস-থাম্বেলে ক্লিক করুন
- লগস ট্যাবে ক্লিক করুন

- menu-item-thumbnails-$PROJECT_ID ক্লাউড স্টোরেজ বাকেট-এ নেভিগেট করুন।
- থাম্বনেইল বাকেটে থাম্বনেইল ছবিটি তৈরি করা হয়েছে কিনা তা যাচাই করুন।

খাবারের বাইরের ছবি আপলোড করা হচ্ছে
ফাংশনটি সঠিকভাবে কাজ করছে কিনা তা যাচাই করার জন্য, আপনাকে এমন একটি ছবি আপলোড করতে হবে যাতে এমন কোনও বস্তু থাকবে না যা "খাদ্য" আইটেম হিসাবে শ্রেণীবদ্ধ করা হবে।

- এই ছবিটি আপনার স্থানীয় মেশিনে সংরক্ষণ করুন।
- 2.jpg ফাইলটির নাম পরিবর্তন করুন।
- ক্লাউড স্টোরেজ কনসোলটি খুলুন
- মেনু-আইটেম-আপলোড-... বাকেটটিতে ক্লিক করুন।
- ফাইল আপলোড করুন ক্লিক করুন
- স্টোরেজ বাকেটে 2.jpg আপলোড করুন।
- ক্লাউড কনসোলে, ক্লাউড রানে নেভিগেট করুন
- প্রসেস-থাম্বেলে ক্লিক করুন
- লগস ট্যাবে ক্লিক করুন

১০. অভিনন্দন!
অভিনন্দন, তুমি ল্যাব শেষ করেছ!
এরপর কি:
অন্যান্য সিম্বাল ইটস কোডল্যাবগুলি অন্বেষণ করুন:
- Eventarc দিয়ে ক্লাউড ওয়ার্কফ্লো ট্রিগার করা
- ক্লাউড রান থেকে প্রাইভেট ক্লাউডএসকিউএল-এর সাথে সংযোগ স্থাপন করা হচ্ছে
- ক্লাউড রান থেকে সম্পূর্ণরূপে পরিচালিত ডাটাবেসের সাথে সংযোগ স্থাপন করা
- আইডেন্টিটি অ্যাওয়্যার প্রক্সি (IAP) সহ সুরক্ষিত সার্ভারলেস অ্যাপ্লিকেশন
- ক্লাউড শিডিউলার দিয়ে ক্লাউড রান জবস ট্রিগার করা
- ক্লাউড রানে নিরাপদে স্থাপন করা হচ্ছে
- ক্লাউড রান ইনগ্রেস ট্র্যাফিক সুরক্ষিত করা
- GKE অটোপাইলট থেকে প্রাইভেট AlloyDB-তে সংযোগ করা হচ্ছে
পরিষ্কার করা
এই টিউটোরিয়ালে ব্যবহৃত রিসোর্সের জন্য আপনার গুগল ক্লাউড অ্যাকাউন্টে চার্জ এড়াতে, হয় রিসোর্স ধারণকারী প্রজেক্টটি মুছে ফেলুন, অথবা প্রজেক্টটি রেখে পৃথক রিসোর্সগুলি মুছে ফেলুন।
প্রকল্পটি মুছে ফেলা হচ্ছে
বিলিং দূর করার সবচেয়ে সহজ উপায় হল টিউটোরিয়ালের জন্য তৈরি করা প্রকল্পটি মুছে ফেলা।