C# এ Google ক্লাউড ফাংশন

1. ভূমিকা

Google ক্লাউড রান ফাংশন হল একটি ইভেন্ট-চালিত সার্ভারহীন কম্পিউট প্ল্যাটফর্ম। ক্লাউড রান ফাংশনগুলি আপনাকে রিসোর্স প্রভিশন বা পরিবর্তনের প্রয়োজনীয়তাগুলি পরিচালনা করার জন্য স্কেলিং সম্পর্কে চিন্তা না করেই আপনার কোড লিখতে দেয়৷

ক্লাউড রান ফাংশন দুই ধরনের আছে:

  • HTTP ফাংশন HTTP অনুরোধে সাড়া দেয়।
  • ইভেন্ট ফাংশনগুলি ইভেন্ট দ্বারা ট্রিগার হয়, যেমন ক্লাউড পাব/সাব -এ প্রকাশিত একটি বার্তা বা ক্লাউড স্টোরেজে আপলোড করা ফাইল৷

efb3268e3b74ed4f.png

এই কোডল্যাব C# এ আপনার নিজস্ব ক্লাউড রান ফাংশন তৈরির মাধ্যমে আপনাকে নিয়ে যাবে। আরও নির্দিষ্টভাবে, আপনি বিভিন্ন Google ক্লাউড উত্স থেকে HTTP এবং ক্লাউড ইভেন্টের প্রতিক্রিয়া জানিয়ে C# ফাংশন স্থাপন করবেন।

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

  • .NET এর জন্য ফাংশন ফ্রেমওয়ার্ক।
  • কিভাবে একটি HTTP ফাংশন লিখতে হয়।
  • ক্লাউড স্টোরেজ ইভেন্টগুলিতে প্রতিক্রিয়া জানিয়ে একটি ইভেন্ট ট্রিগারড ফাংশন কীভাবে লিখবেন।
  • ক্লাউড পাব/সাব ইভেন্টগুলিতে প্রতিক্রিয়া জানিয়ে একটি ইভেন্ট ট্রিগারড ফাংশন কীভাবে লিখবেন।
  • যেকোন ধরণের ইভেন্টে প্রতিক্রিয়া জানিয়ে একটি ইভেন্ট ট্রিগারড ফাংশন কীভাবে লিখবেন।

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

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

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

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

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

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

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

Google ক্লাউড কনসোল থেকে, উপরের ডানদিকে টুলবারে ক্লাউড শেল আইকনে ক্লিক করুন:

55efc1aaa7a4d3ad.png

পরিবেশের ব্যবস্থা করতে এবং সংযোগ করতে এটি শুধুমাত্র কয়েক মুহূর্ত নিতে হবে। এটি সমাপ্ত হলে, আপনি এই মত কিছু দেখতে হবে:

7ffe5cbb04455448.png

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

3. আপনি শুরু করার আগে

ক্লাউড শেলের ভিতরে, প্রয়োজনীয় পরিষেবাগুলি সক্ষম করতে নিম্নলিখিত কমান্ডটি চালান:

gcloud services enable \
  artifactregistry.googleapis.com \
  cloudbuild.googleapis.com \
  cloudfunctions.googleapis.com \
  eventarc.googleapis.com \
  run.googleapis.com

পরবর্তী, আপনার অঞ্চল সেট করুন।

REGION=<YOUR_REGION>

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

প্রথমে, পরিষেবা অ্যাকাউন্ট তৈরি করুন।

PROJECT_ID=$(gcloud config get-value core/project)
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')

SERVICE_ACCOUNT="cloud-run-functions"
SERVICE_ACCOUNT_ADDRESS=$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com

gcloud iam service-accounts create $SERVICE_ACCOUNT \
  --display-name="Cloud Run functions Eventarc service account"

এর পরে, আপনার Eventarc ট্রিগারের সাথে সম্পর্কিত পরিষেবা অ্যাকাউন্টে প্রকল্পে Eventarc ইভেন্ট রিসিভার ভূমিকা (roles/eventarc.eventReceiver) প্রদান করুন যাতে ট্রিগার ইভেন্ট প্রদানকারীদের থেকে ইভেন্টগুলি গ্রহণ করতে পারে।

gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member serviceAccount:$SERVICE_ACCOUNT_ADDRESS \
  --role=roles/eventarc.eventReceiver

তারপর, পরিষেবা অ্যাকাউন্টটিকে ক্লাউড রান ইনভোকার ভূমিকা মঞ্জুর করুন যাতে এটি ফাংশনটি শুরু করতে পারে৷

gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member serviceAccount:$SERVICE_ACCOUNT_ADDRESS \
  --role=roles/run.invoker

4. .NET-এর জন্য ফাংশন ফ্রেমওয়ার্ক

.NET-এর জন্য ফাংশন ফ্রেমওয়ার্ক হল পোর্টেবল .NET ফাংশন লেখার জন্য একটি ওপেন সোর্স FaaS (পরিষেবা হিসাবে ফাংশন) ফ্রেমওয়ার্ক – Google ক্লাউড ফাংশন টিম আপনার কাছে নিয়ে এসেছে৷

ফাংশন ফ্রেমওয়ার্ক আপনাকে লাইটওয়েট ফাংশন লিখতে দেয় যা বিভিন্ন পরিবেশে চলে, যার মধ্যে রয়েছে:

  • গুগল ক্লাউড রান ফাংশন
  • আপনার স্থানীয় উন্নয়ন মেশিন
  • GKE তে ক্লাউড রান এবং ক্লাউড রান
  • নেটিভ-ভিত্তিক পরিবেশ

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

ক্লাউড শেলের ভিতরে, dotnet জন্য ক্লাউড ফাংশন টেমপ্লেট ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালান:

dotnet new install Google.Cloud.Functions.Templates

এটি dotnet জন্য 3টি টেমপ্লেট ইনস্টল করে। প্রতিটি টেমপ্লেট C#, F# এবং VB-তে উপলব্ধ (কিন্তু আপনি এই ল্যাবে শুধুমাত্র C# ব্যবহার করবেন)। আপনি যাচাই করতে পারেন যে টেমপ্লেটগুলি চালানোর মাধ্যমে ইনস্টল করা হয়েছে:

dotnet new list

Templates                                                 Short Name            
-----------------------------------------------------------------------
Google Cloud Functions CloudEvent Function                gcf-event
Google Cloud Functions CloudEvent Function (Untyped)      gcf-untyped-event
Google Cloud Functions HttpFunction                       gcf-http

5. HTTP ফাংশন

আপনি HTTP অনুরোধে সাড়া দিয়ে একটি HTTP ফাংশন তৈরি এবং স্থাপন করবেন।

gcf-http টেমপ্লেট ব্যবহার করে একটি HTTP ফাংশন তৈরি করুন:

mkdir HelloHttp
cd HelloHttp
dotnet new gcf-http

এটি একটি প্রকল্প এবং একটি Function.cs ফাইল তৈরি করে যা HTTP অনুরোধে সাড়া দেয়।

.csproj ফাইলে টার্গেট ফ্রেমওয়ার্ক net8.0 এ পরিবর্তন করুন:

<TargetFramework>net8.0</TargetFramework>

একটি ক্লাউড রান ফাংশন সরাসরি ক্লাউড রানে স্থাপন করতে, নিম্নলিখিত কমান্ডটি চালান:

gcloud beta run deploy hello-http-function \
    --source . \
    --function HelloHttp.Function \
    --base-image dotnet8 \
    --region $REGION \
    --allow-unauthenticated

আপনি যদি ক্লাউড ফাংশন 2nd জেনার হিসাবে স্থাপন করতে পছন্দ করেন তবে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

gcloud functions deploy hello-http-function \
    --allow-unauthenticated \
    --entry-point HelloHttp.Function \
    --gen2 \
    --region $REGION \
    --runtime dotnet8 \
    --trigger-http

একবার আপনার ফাংশন স্থাপন করা হয়ে গেলে, আপনি নিম্নলিখিত কার্ল কমান্ড ব্যবহার করে এটি চালু করতে পারেন:

SERVICE_URL=$(gcloud run services describe hello-http-function --platform managed --region $REGION --format 'value(status.url)')

curl $SERVICE_URL

6. ক্লাউড ইভেন্ট ফাংশন - GCS

আপনি Google ক্লাউড স্টোরেজ (GCS) ইভেন্টগুলিতে প্রতিক্রিয়া জানাতে একটি CloudEvent ফাংশন তৈরি এবং স্থাপন করবেন৷

প্রথমে, একটি ক্লাউড স্টোরেজ বালতি তৈরি করুন। এই বালতি আপনি পরে থেকে ঘটনা শুনতে হবে:

BUCKET_NAME="cloud-functions-bucket-${PROJECT_ID}"
gsutil mb -l us-central1 gs://${BUCKET_NAME}

gcf-event টেমপ্লেট ব্যবহার করে একটি CloudEvent ফাংশন তৈরি করুন:

cd ..
mkdir HelloGcs
cd HelloGcs
dotnet new gcf-event

এটি একটি প্রকল্প এবং একটি Function.cs ফাইল তৈরি করে যা CloudEvent অনুরোধে সাড়া দেয়। এটি CloudEvent এর ডেটা StorageObjectData এ পার্স করে।

.csproj ফাইলে টার্গেট ফ্রেমওয়ার্ক net8.0 এ পরিবর্তন করুন:

<TargetFramework>net8.0</TargetFramework>

একটি ক্লাউড রান ফাংশন সরাসরি ক্লাউড রানে স্থাপন করতে, আপনি প্রথমে ফাংশনটি স্থাপন করবেন এবং তারপরে এটির জন্য একটি ট্রিগার তৈরি করবেন।

gcloud beta run deploy hello-gcs-function \
      --source . \
      --function HelloGcs.Function \
      --region $REGION \
      --base-image dotnet8 \
      --no-allow-unauthenticated

এখন ক্লাউড রান ফাংশনের জন্য ট্রিগার তৈরি করুন

BUCKET_REGION=$REGION

gcloud eventarc triggers create hello-gcs-function-trigger \
     --location=$REGION \
     --destination-run-service=hello-gcs-function \
    --destination-run-region=$BUCKET_REGION \
     --event-filters="type=google.cloud.storage.object.v1.finalized" \
     --event-filters="bucket=$BUCKET_NAME" \
     --service-account=$SERVICE_ACCOUNT_ADDRESS

আপনি যদি ক্লাউড ফাংশন 2nd জেনার হিসাবে স্থাপন করতে পছন্দ করেন, আপনি trigger-event এবং trigger-resource ফ্ল্যাগ ব্যবহার করে ফাংশন স্থাপন করতে নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:

gcloud functions deploy hello-gcs-function \
    --allow-unauthenticated \
    --entry-point HelloGcs.Function \
    --gen2 \
    --region $REGION \
    --runtime dotnet8 \
    --trigger-event google.storage.object.finalize \
    --trigger-resource ${BUCKET_NAME} \
    --service-account=$SERVICE_ACCOUNT_ADDRESS

কয়েক মিনিটের পরে, ফাংশনটি ক্লাউড কনসোলে দৃশ্যমান হওয়া উচিত:

c28654d74bb31420.png

স্টোরেজ বালতিতে একটি ফাইল আপলোড করে ফাংশনটি ট্রিগার করুন:

echo "Hello from Storage" > random.txt
gsutil cp random.txt gs://${BUCKET_NAME}

লগগুলি পড়ার মাধ্যমে ফাংশনটি ট্রিগার হয়েছে তা যাচাই করুন:

একটি ক্লাউড রান ফাংশনের জন্য, আপনি এই কমান্ডটি চালাতে পারেন:

gcloud logging read "resource.labels.service_name=hello-gcs-function AND textPayload: Name" --format=json

একটি 2nd gen ফাংশনের জন্য, আপনি এই কমান্ডটি চালাতে পারেন:

gcloud functions logs read hello-gcs-function \
    --gen2 \
    --region us-central1

7. ক্লাউড ইভেন্ট ফাংশন - পাব/সাব

আপনি ক্লাউড পাব/সাব ইভেন্টগুলিতে প্রতিক্রিয়া জানিয়ে একটি ক্লাউড ইভেন্ট ফাংশন তৈরি এবং স্থাপন করবেন।

প্রথমে, একটি ক্লাউড পাব/সাব বিষয় তৈরি করুন যা ইভেন্টগুলি নির্গত করবে:

TOPIC_NAME=cloud-functions-topic
gcloud pubsub topics create ${TOPIC_NAME}

gcf-event টেমপ্লেট ব্যবহার করে একটি CloudEvent ফাংশন তৈরি করুন:

cd ..
mkdir HelloPubSub
cd HelloPubSub
dotnet new gcf-event

এটি একটি প্রকল্প এবং একটি Function.cs ফাইল তৈরি করে যা CloudEvent অনুরোধে সাড়া দেয়। এটি ডিফল্টরূপে CloudEvent এর ডেটা StorageObjectData এ পার্স করে।

.csproj ফাইলে টার্গেট ফ্রেমওয়ার্ক net8.0 এ পরিবর্তন করুন:

<TargetFramework>net8.0</TargetFramework>

পাব/সাব মেসেজ পার্স করতে StorageObjectData কে MessagePublishedData এ পরিবর্তন করুন। Google.Events.Protobuf.Cloud.Storage.V1 Google.Events.Protobuf.Cloud.PubSub.V1 এ পরিবর্তন করুন।

শেষ পর্যন্ত, আপনার ফাংশন এই মত হওয়া উচিত:

using CloudNative.CloudEvents;
using Google.Cloud.Functions.Framework;
using Google.Events.Protobuf.Cloud.PubSub.V1;
using System;
using System.Threading;
using System.Threading.Tasks;

namespace HelloPubSub;

public class Function : ICloudEventFunction<MessagePublishedData>
{
    public Task HandleAsync(CloudEvent cloudEvent, MessagePublishedData data, CancellationToken cancellationToken)
    {
        var nameFromMessage = data.Message?.TextData;
        var name = string.IsNullOrEmpty(nameFromMessage) ? "world" : nameFromMessage;
        Console.WriteLine($"Hello {name}");
        return Task.CompletedTask;
    }
}

একটি ক্লাউড রান ফাংশন সরাসরি ক্লাউড রানে স্থাপন করতে, আপনি প্রথমে ফাংশনটি স্থাপন করবেন এবং তারপরে এটির জন্য একটি ট্রিগার তৈরি করবেন।

gcloud beta run deploy hello-pubsub-function \
      --source . \
      --function HelloPubSub.Function \
      --region $REGION \
      --base-image dotnet8 \
      --no-allow-unauthenticated \
      --service-account=$SERVICE_ACCOUNT_ADDRESS

এখন ক্লাউড রান ফাংশনের জন্য ট্রিগার তৈরি করুন

gcloud eventarc triggers create my-pubsub-trigger \
    --location=$REGION \
    --service-account=$SERVICE_ACCOUNT_ADDRESS \
    --destination-run-service=hello-pubsub-function \
    --destination-run-region=$REGION \
    --destination-run-path="/" \
    --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
    --transport-topic=projects/$PROJECT_ID/topics/$TOPIC_NAME

আপনি যদি ক্লাউড ফাংশন 2nd জেনার হিসাবে স্থাপন করতে পছন্দ করেন তবে আপনি trigger-topic ফ্ল্যাগ ব্যবহার করে ফাংশনটি স্থাপন করতে নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:

gcloud functions deploy hello-pubsub-function \
    --allow-unauthenticated \
    --entry-point HelloPubSub.Function \
    --gen2 \
    --region us-central1 \
    --runtime dotnet8 \
    --trigger-topic ${TOPIC_NAME}

কয়েক মিনিটের পরে, ফাংশনটি ক্লাউড কনসোলে দৃশ্যমান হওয়া উচিত:

3443808da7caf3bc.png

বিষয়টিতে একটি বার্তা প্রকাশ করে ফাংশনটি ট্রিগার করুন:

gcloud pubsub topics publish ${TOPIC_NAME} --message="World"

লগগুলি পড়ার মাধ্যমে ফাংশনটি ট্রিগার হয়েছে তা যাচাই করুন।

একটি ক্লাউড রান ফাংশনের জন্য, আপনি এই কমান্ডটি চালাতে পারেন:

gcloud logging read "resource.labels.service_name=hello-pubsub-function AND textPayload: World" --format=json

একটি 2nd gen ফাংশনের জন্য, আপনি এই কমান্ডটি চালাতে পারেন:

gcloud functions logs read hello-pubsub-function \
    --gen2 \
    --region us-central1

8. ক্লাউড ইভেন্ট ফাংশন - টাইপ করা হয়নি

আপনি যদি CloudEvents নিয়ে পরীক্ষা-নিরীক্ষা করে থাকেন এবং এখনও আপনার কাছে কোনো পেলোড ডেটা মডেল না থাকে যা আপনি প্রতিশ্রুতিবদ্ধ করতে চান, বা আপনি চান যে আপনার ফাংশন কোনো ক্লাউড ইভেন্ট পরিচালনা করতে সক্ষম হোক, আপনি একটি টাইপ না করা CloudEvent ফাংশন ব্যবহার করতে পারেন।

gcf-untyped-event টেমপ্লেট ব্যবহার করে একটি CloudEvent ফাংশন তৈরি করুন:

cd ..
mkdir HelloUntyped
cd HelloUntyped
dotnet new gcf-untyped-event

এটি একটি প্রকল্প এবং একটি Function.cs ফাইল তৈরি করে যা CloudEvent এর ডেটা পার্স করার কোনো প্রচেষ্টা ছাড়াই CloudEvent অনুরোধে সাড়া দেয়।

.csproj ফাইলে টার্গেট ফ্রেমওয়ার্ক net8.0 এ পরিবর্তন করুন:

<TargetFramework>net8.0</TargetFramework>

একটি ক্লাউড রান ফাংশন সরাসরি ক্লাউড রানে স্থাপন করতে, আপনি প্রথমে ফাংশনটি স্থাপন করবেন এবং তারপরে এটির জন্য একটি ট্রিগার তৈরি করবেন।

gcloud beta run deploy hello-untyped-function \
      --source . \
      --function HelloUntyped.Function \
      --region $REGION \
      --base-image dotnet8 \
      --no-allow-unauthenticated

এখন ক্লাউড রান ফাংশনের জন্য ট্রিগার তৈরি করুন

BUCKET_REGION=$REGION

gcloud eventarc triggers create hello-untyped-function-trigger \
     --location=$REGION \
     --destination-run-service=hello-untyped-function \
    --destination-run-region=$BUCKET_REGION \
     --event-filters="type=google.cloud.storage.object.v1.finalized" \
     --event-filters="bucket=$BUCKET_NAME" \
     --service-account=$SERVICE_ACCOUNT_ADDRESS

আপনি যদি ক্লাউড ফাংশন 2nd জেনার হিসাবে স্থাপন করতে পছন্দ করেন, আপনি trigger-event এবং trigger-resource ফ্ল্যাগ ব্যবহার করে ফাংশন স্থাপন করতে নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:

gcloud functions deploy hello-untyped-function \
    --allow-unauthenticated \
    --entry-point HelloUntyped.Function \
    --gen2 \
    --region us-central1 \
    --runtime dotnet8 \
    --trigger-event google.storage.object.finalize \
    --trigger-resource ${BUCKET_NAME}

একটি ফাইল একটি স্টোরেজ বাকেট আপলোড করা হলে ফাংশন ট্রিগার হবে.

কয়েক মিনিটের পরে, ফাংশনটি ক্লাউড কনসোলে দৃশ্যমান হওয়া উচিত:

afe56530826787c6.png

স্টোরেজ বালতিতে একটি ফাইল আপলোড করে ফাংশনটি ট্রিগার করুন:

echo "Hello from Storage" > random.txt
gsutil cp random.txt gs://${BUCKET_NAME}

লগগুলি পড়ার মাধ্যমে ফাংশনটি ট্রিগার হয়েছে তা যাচাই করুন।

একটি ক্লাউড রান ফাংশনের জন্য, আপনি এই কমান্ডটি চালাতে পারেন:

gcloud logging read "resource.labels.service_name=hello-gcs-function AND textPayload: Name" --format=json

একটি 2nd gen ফাংশনের জন্য, আপনি এই কমান্ডটি চালাতে পারেন:

gcloud functions logs read hello-untyped-function \
    --gen2 \
    --region us-central1

9. অভিনন্দন!

কোডল্যাব সম্পূর্ণ করার জন্য অভিনন্দন।

আমরা কভার করেছি কি

  • .NET এর জন্য ফাংশন ফ্রেমওয়ার্ক।
  • কিভাবে একটি HTTP ক্লাউড ফাংশন লিখতে হয়।
  • ক্লাউড স্টোরেজ ইভেন্টগুলিতে প্রতিক্রিয়া জানিয়ে একটি ক্লাউড ইভেন্ট ফাংশন কীভাবে লিখবেন।
  • ক্লাউড পাব/সাব ইভেন্টগুলিতে প্রতিক্রিয়া জানিয়ে একটি ক্লাউড ইভেন্ট ফাংশন কীভাবে লিখবেন।
  • যেকোন ধরণের ইভেন্টে সাড়া দিয়ে একটি ক্লাউড ইভেন্ট ফাংশন কীভাবে লিখবেন।