Eventarc এবং ক্লাউড ফাংশন ব্যবহার করে ক্লাউড স্টোরেজ থেকে ইভেন্ট প্রসেসিং ট্রিগার করা (২য় প্রজন্ম)

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

এই ল্যাবে, আপনি ইভেন্ট প্রসেসিং ট্রিগার করার জন্য ক্লাউড স্টোরেজ বাকেট ইভেন্ট এবং Eventarc ব্যবহার করতে শিখবেন। আপনি ডেটা বিশ্লেষণ এবং চিত্রগুলি প্রক্রিয়া করার জন্য ক্লাউড ফাংশন (২য় প্রজন্ম) ব্যবহার করবেন। ফাংশনটি Google এর Vision API ব্যবহার করবে এবং ফলস্বরূপ চিত্রটিকে ক্লাউড স্টোরেজ বাকেটের মধ্যে সংরক্ষণ করবে।

4756e4c218d84e26.png

যা শিখবেন

কিভাবে একটি ইমেজ প্রসেসিং পাইপলাইন তৈরি করবেন।

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

পূর্বশর্ত

  • এই ল্যাবটি ক্লাউড কনসোল এবং শেল পরিবেশের সাথে পরিচিতি অনুমান করে।
  • পূর্বে ক্লাউড স্টোরেজ, ক্লাউড ফাংশন, বা ভিশন API অভিজ্ঞতা সহায়ক কিন্তু প্রয়োজন হয় না।

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

ক্লাউড প্রজেক্ট সেটআপ

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

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

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

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

অনুসন্ধান বারের ডানদিকে আইকনে ক্লিক করে ক্লাউড শেল সক্রিয় করুন।

8613854df02635a3.png

এনভায়রনমেন্ট সেটআপ

  1. ক্লাউড শেল টার্মিনালে নীচের কমান্ডগুলি চালিয়ে একটি প্রকল্প এবং সংস্থান-সম্পর্কিত পরিবেশের ভেরিয়েবল তৈরি করুন।
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=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)")
  1. ল্যাবের জন্য প্রয়োজনীয় 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
  1. ল্যাবের জন্য প্রয়োজনীয় API গুলি সক্ষম করুন৷ (Qwiklabs নির্দিষ্ট ধাপ)
gcloud services disable cloudfunctions.googleapis.com
gcloud services enable cloudfunctions.googleapis.com
  1. সংগ্রহস্থল ক্লোন করুন
git clone https://github.com/GoogleCloudPlatform/cymbal-eats.git && cd cymbal-eats/cloud-functions

3. ক্লাউড স্টোরেজ বালতি কনফিগার করুন

স্টোরেজ বালতি তৈরি করুন

আপনার ছবি প্রক্রিয়াকরণ পাইপলাইনের জন্য আপলোড এবং থাম্বনেইল ক্লাউড স্টোরেজ বালতি তৈরি করুন।

দুটি বালতি তৈরি করতে gsutil mb কমান্ড এবং একটি অনন্য নাম ব্যবহার করুন:

  1. আপলোড বালতি যেখানে ছবি প্রথমে আপলোড করা হবে
  2. থাম্বনেইল বালতি জেনারেট করা থাম্বনেইল ছবি সংরক্ষণ করতে

নতুন ছবি আপলোড করতে একটি বালতি তৈরি করুন:

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].
[...]

4. পরিষেবা অ্যাকাউন্ট কনফিগার করুন

থাম্বনেলগুলি প্রক্রিয়া করতে ক্লাউড ফাংশনের জন্য একটি কাস্টম পরিষেবা অ্যাকাউন্ট তৈরি করুন:

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"

5. ইমেজ প্রসেসিং ফাংশন ওভারভিউ

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

4c3c3b758dba6a9f.png

একটি ফাংশন ট্রিগার

ক্লাউড স্টোরেজ ফাংশনগুলি ক্লাউড স্টোরেজ থেকে পাব/সাব বিজ্ঞপ্তিগুলির উপর ভিত্তি করে এবং অনুরূপ ইভেন্ট প্রকারগুলিকে সমর্থন করে:

এই ল্যাবে, ক্লাউড স্টোরেজে কোনো বস্তু চূড়ান্ত হলে আপনি একটি ফাংশন স্থাপন ও ট্রিগার করবেন।

অবজেক্ট চূড়ান্ত করুন

যখন একটি ক্লাউড স্টোরেজ অবজেক্টের একটি "লিখন" সফলভাবে চূড়ান্ত করা হয় তখন অবজেক্ট চূড়ান্ত ইভেন্টগুলি ট্রিগার করে৷ বিশেষ করে, এর মানে হল একটি নতুন অবজেক্ট তৈরি করা বা একটি বিদ্যমান অবজেক্ট ওভাররাইট করা এই ইভেন্টটিকে ট্রিগার করে। সংরক্ষণাগার এবং মেটাডেটা আপডেট অপারেশন এই ট্রিগার দ্বারা উপেক্ষা করা হয়.

6. ক্লাউড স্টোরেজ সংহত করুন

ক্লাউড স্টোরেজ হল Google ক্লাউডে আপনার বস্তু সংরক্ষণ করার জন্য একটি পরিষেবা। একটি অবজেক্ট হল একটি অপরিবর্তনীয় ডেটার টুকরো যা যেকোনো বিন্যাসের একটি ফাইল নিয়ে গঠিত। আপনি বালতি নামক পাত্রে বস্তু সংরক্ষণ করেন। সমস্ত বালতি একটি প্রকল্পের সাথে যুক্ত, এবং আপনি একটি সংস্থার অধীনে আপনার প্রকল্পগুলিকে গোষ্ঠীভুক্ত করতে পারেন৷ ক্লায়েন্ট লাইব্রেরি এবং APIগুলি ক্লাউড স্টোরেজের সাথে একীভূত হয়৷

এই ল্যাবে, আপনি ক্লায়েন্ট লাইব্রেরি ব্যবহার করে ক্লাউড স্টোরেজে বস্তু পড়তে এবং লিখতে পারবেন।

ক্লায়েন্ট লাইব্রেরি ইনস্টল করা হচ্ছে

ক্লাউড ক্লায়েন্ট লাইব্রেরি অনেক জনপ্রিয় প্রোগ্রামিং ভাষায় পাওয়া যায়। লাইব্রেরি ব্যবহার শুরু করতে আপনাকে অবশ্যই ক্লায়েন্ট লাইব্রেরি ইনস্টল করতে হবে।

ক্লায়েন্ট লাইব্রেরি ব্যবহার করে

বড় আকারে বাস্তবায়নের বিবরণ প্রোগ্রামিং ভাষার উপর নির্ভর করে। আপনার অ্যাপ্লিকেশনে ক্লায়েন্ট লাইব্রেরি ব্যবহার করার জন্য, প্রথম ধাপ হল ক্লাউড স্টোরেজ নির্ভরতা আমদানি করা। উদাহরণস্বরূপ, Node.js প্রজেক্টে, প্যাকেজ.json ফাইলে আমদানি যোগ করা হয়। নীচের স্নিপেট এই ল্যাবের 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 কলব্যাক নিবন্ধন করুন

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

index.js

functions.cloudEvent('process-thumbnails', async (cloudEvent) => {
    console.log(`Event ID: ${cloudEvent.id}`);
    console.log(`Event Type: ${cloudEvent.type}`);
    ...

একটি স্টোরেজ রেফারেন্স অবজেক্ট তৈরি করা হচ্ছে

ক্লায়েন্ট লাইব্রেরিগুলি আমদানি করার পরে, আপনাকে একটি নতুন স্টোরেজ ক্লায়েন্ট তৈরি করতে হবে এবং আপনার অ্যাপ্লিকেশনের সাথে যোগাযোগ করবে।

index.js

const storage = new Storage();
const bucket = storage.bucket(file.bucket);
const thumbBucket = storage.bucket(process.env.BUCKET_THUMBNAILS);

ক্লাউড স্টোরেজ অবজেক্ট ডাউনলোড করুন

index.js

await bucket.file(file.name).download({
            destination: originalFile
        });

ক্লাউড স্টোরেজে অবজেক্ট আপলোড করুন

আপনি তিনটি উপায়ে ক্লাউড স্টোরেজে আপলোডের অনুরোধ পাঠাতে পারেন: একক-অনুরোধ, পুনঃসূচনাযোগ্য বা XML API মাল্টিপার্ট আপলোড৷ বড় আপলোড বা স্ট্রিমিং আপলোডের জন্য পুনরায় শুরু করা আপলোডগুলি ব্যবহার করুন৷ XML API ফাইলগুলি অংশে আপলোড করা হয় এবং একক বস্তু হিসাবে একত্রিত হয়। ছোট বস্তুর জন্য, একক-অনুরোধ আপলোড ব্যবহার করুন।

নীচের কোডটি একটি একক-অনুরোধ আপলোড ব্যবহার করে ক্লাউড স্টোরেজে একটি ছবি আপলোড করে৷

index.js

const thumbnailImage = await thumbBucket.upload(thumbFile);

7. ইন্টিগ্রেট ভিশন API

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

ক্লায়েন্ট লাইব্রেরি ইনস্টল করা হচ্ছে

ক্লাউড ক্লায়েন্ট লাইব্রেরি অনেক জনপ্রিয় প্রোগ্রামিং ভাষায় পাওয়া যায়। লাইব্রেরি ব্যবহার শুরু করতে আপনাকে অবশ্যই ক্লায়েন্ট লাইব্রেরি ইনস্টল করতে হবে।

একটি ইমেজ অ্যানোটেটর ক্লায়েন্ট তৈরি করুন

অফিসিয়াল ক্লায়েন্ট SDK ব্যবহার করে Google API অ্যাক্সেস করতে, আপনি API-এর আবিষ্কার নথির উপর ভিত্তি করে একটি পরিষেবা অবজেক্ট তৈরি করেন, যা SDK-তে API-কে বর্ণনা করে। আপনার শংসাপত্রগুলি ব্যবহার করে আপনাকে Vision API এর আবিষ্কার পরিষেবা থেকে এটি আনতে হবে।

index.js

const client = new vision.ImageAnnotatorClient();

একটি ভিশন API অনুরোধ তৈরি করুন

ভিশন API আপনার অনুরোধের মূল অংশে একটি বেস64 এনকোডেড স্ট্রিং হিসাবে চিত্র ফাইলের বিষয়বস্তু পাঠিয়ে একটি চিত্র ফাইলে বৈশিষ্ট্য সনাক্তকরণ সম্পাদন করতে পারে।

আপনার ছবি টীকা করার জন্য ইমেজ রিসোর্স ব্যবহার করে একটি অনুরোধ তৈরি করতে। এই API-তে একটি অনুরোধ একটি অনুরোধের তালিকা সহ একটি বস্তুর আকার নেয়। এই তালিকার প্রতিটি আইটেমে তথ্যের দুটি বিট রয়েছে:

  • বেস64-এনকোডেড ইমেজ ডেটা
  • বৈশিষ্ট্যগুলির একটি তালিকা যা আপনি সেই চিত্র সম্পর্কে টীকা করতে চান৷

index.js

        const client = new vision.ImageAnnotatorClient();
        const visionRequest = {
            image: { source: { imageUri: `gs://${file.bucket}/${file.name}` } },
            features: [
                { type: 'LABEL_DETECTION' },
            ]
        };
        const visionPromise = client.annotateImage(visionRequest);

8. ক্লাউড ফাংশন স্থাপন করুন

এই ইমেজ রিসাইজ সার্ভিসটি বৃহত্তর Cymbal Eats সিস্টেমের অংশ। এই বিভাগে, আপনি শুধুমাত্র ইমেজ প্রক্রিয়াকরণ বৈশিষ্ট্য সম্পর্কিত উপাদান স্থাপন করবেন। সম্পূর্ণ ইনস্টলেশনে ইমেজ আপলোড করার জন্য একটি UI এবং ফলস্বরূপ মেটাডেটা সংরক্ষণ করার জন্য একটি ডাউনস্ট্রিম অনুরোধ অন্তর্ভুক্ত করা হয়েছে। সেই ক্ষমতাগুলি এই ল্যাবের অংশ হিসাবে ইনস্টল করা হয় না।

ফাংশন স্থাপনের সময় নিম্নলিখিত উপাদানগুলি তৈরি করা হবে:

  • ক্লাউড ফাংশন
  • ক্লাউড রান পরিষেবা
  • Eventarc ট্রিগার
  • পাব/সাব বিষয় এবং সদস্যতা

ক্লাউডশেল টার্মিনালে, menu-item-uploads-$PROJECT_ID তে একটি ট্রিগার বাকেট সহ ক্লাউড ফাংশন স্থাপন করতে নীচের কমান্ডটি চালান:

gcloud functions deploy process-thumbnails \
  --gen2 \
  --runtime=nodejs16 \
  --source=thumbnail \
  --region=$REGION \
  --project=$PROJECT_ID \
  --entry-point=process-thumbnails \
  --trigger-bucket=$UPLOAD_BUCKET \
  --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

আপলোড স্টোরেজ বাকেটের অনুমতি সংক্রান্ত সমস্যার কারণে যদি স্থাপনা ব্যর্থ হয় - অনুগ্রহ করে পূর্ববর্তী ধাপ থেকে IAM পরিবর্তনের জন্য অপেক্ষা করুন। সাধারণত 1-2 মিনিট সময় নেয় এবং তারপর আবার স্থাপনার চেষ্টা করুন।

উদাহরণ আউটপুট

Deploying function (may take a while - up to 2 minutes)...done.
[...] 

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

8148dd29e6757603.png

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

42e970cdd48cae76.png

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

9441995a5cc62e38.png

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

affe089c39ae1465.png

a4c41ede2af300db.png

9. এন্ড-টু-এন্ড সমাধান পরীক্ষা করুন এবং যাচাই করুন

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

একটি উপযুক্ত ছবি আপলোড করা হচ্ছে

2fdd13b63d6148f4.jpeg

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

7ab4e783e474c90d.png

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

84d8023782eb3e0c.png

একটি অ-খাদ্য ছবি আপলোড করা হচ্ছে

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

3226a24251084b28.jpeg

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

421c36c342fceea8.png

10. অভিনন্দন!

অভিনন্দন, আপনি ল্যাব শেষ!

এরপর কি:

অন্যান্য Cymbal Eats কোডল্যাবগুলি অন্বেষণ করুন:

পরিষ্কার কর

এই টিউটোরিয়ালে ব্যবহৃত সংস্থানগুলির জন্য আপনার Google ক্লাউড অ্যাকাউন্টে চার্জ এড়াতে, হয় সংস্থানগুলি রয়েছে এমন প্রকল্পটি মুছুন, অথবা প্রকল্পটি রাখুন এবং পৃথক সংস্থানগুলি মুছুন৷

প্রকল্প মুছে ফেলা হচ্ছে

বিলিং দূর করার সবচেয়ে সহজ উপায় হল আপনি টিউটোরিয়ালের জন্য তৈরি করা প্রকল্পটি মুছে ফেলা।