1. ভূমিকা
ক্লাউড রান আপনাকে সম্পূর্ণরূপে পরিচালিত পরিবেশে স্টেটলেস কন্টেইনার চালানোর অনুমতি দেয়। এটি ওপেন-সোর্স Knative থেকে তৈরি করা হয়েছে, যা আপনাকে ক্লাউড রানের মাধ্যমে সম্পূর্ণরূপে পরিচালিত বা আপনার Google কুবারনেটস ইঞ্জিন ক্লাস্টারে ক্লাউড রান ফর অ্যান্থোস-এর সাথে আপনার কন্টেনারগুলি চালানোর জন্য বেছে নিতে দেয়।
Eventarc বিভিন্ন উৎস থেকে ইভেন্টের সাথে বিভিন্ন পরিষেবা (ক্লাউড রান, ক্লাউড ফাংশন, ওয়ার্কফ্লোস) সংযোগ করা সহজ করে তোলে। এটি আপনাকে ইভেন্ট-চালিত আর্কিটেকচার তৈরি করতে দেয় যেখানে মাইক্রোসার্ভিসগুলি শিথিলভাবে সংযুক্ত এবং বিতরণ করা হয়। এটি আপনার জন্য ইভেন্ট ইনজেশন, ডেলিভারি, নিরাপত্তা, অনুমোদন, এবং ত্রুটি-হ্যান্ডলিং এর যত্ন নেয় যা বিকাশকারীর তত্পরতা এবং অ্যাপ্লিকেশন স্থিতিস্থাপকতা উন্নত করে।
এই কোডল্যাবে, আপনি Eventarc সম্পর্কে শিখবেন। আরও নির্দিষ্টভাবে, আপনি Eventarc-এর সাথে পাব/সাব, ক্লাউড স্টোরেজ এবং ক্লাউড অডিট লগ থেকে ইভেন্টগুলি শুনবেন এবং সেগুলিকে একটি ক্লাউড রান পরিষেবাতে পাঠাবেন।
আপনি কি শিখবেন
- ইভেন্টর্কের দৃষ্টি
- Eventarc-এ ইভেন্টগুলি আবিষ্কার করুন
- একটি ক্লাউড রান সিঙ্ক তৈরি করুন
- পাব/সাবের জন্য একটি ট্রিগার তৈরি করুন
- ক্লাউড স্টোরেজের জন্য একটি ট্রিগার তৈরি করুন
- ক্লাউড অডিট লগের জন্য একটি ট্রিগার তৈরি করুন
- Eventarc UI এক্সপ্লোর করুন
2. ইভেন্টর্কের দৃষ্টি
Eventarc-এর লক্ষ্য হল বিভিন্ন Google, Google ক্লাউড, এবং 3য় পক্ষের ইভেন্ট উত্স থেকে Google ক্লাউড ইভেন্ট গন্তব্যে ইভেন্ট সরবরাহ করা।
গুগল ক্লাউড উত্স | ইভেন্ট সোর্স যা Google ক্লাউডের মালিকানাধীন পণ্য |
গুগল সূত্র | ইভেন্ট উত্সগুলি যেগুলি Google-এর মালিকানাধীন পণ্য যেমন Gmail, Hangouts, Android ব্যবস্থাপনা এবং আরও অনেক কিছু৷ |
কাস্টম সূত্র | ইভেন্ট উত্সগুলি যেগুলি Google-এর মালিকানাধীন পণ্য নয় এবং শেষ ব্যবহারকারীরা নিজেরাই তৈরি করেছেন৷ |
তৃতীয় পক্ষের সূত্র | ইভেন্ট সোর্স যা Google-এর মালিকানাধীন বা গ্রাহক-উত্পাদিত নয়। এর মধ্যে রয়েছে চেক পয়েন্ট ক্লাউডগার্ড, ডেটাডগ, ফোরজারক, লেসওয়ার্ক, ইত্যাদির মতো জনপ্রিয় ইভেন্ট উত্সগুলি যা তৃতীয় পক্ষের প্রদানকারী এবং অংশীদারদের মালিকানাধীন এবং রক্ষণাবেক্ষণ করে৷ |
ক্রস-সার্ভিস ইন্টারঅপারেবিলিটির জন্য ইভেন্টগুলিকে CloudEvents v1.0 ফর্ম্যাটে স্বাভাবিক করা হয়। CloudEvents হল একটি বিক্রেতা-নিরপেক্ষ ওপেন স্পেক যা সাধারণ ফরম্যাটে ইভেন্ট ডেটা বর্ণনা করে, যা পরিষেবা, প্ল্যাটফর্ম এবং সিস্টেম জুড়ে আন্তঃঅপারেবিলিটি সক্ষম করে।
3. সেটআপ এবং প্রয়োজনীয়তা
স্ব-গতিসম্পন্ন পরিবেশ সেটআপ
- Google ক্লাউড কনসোলে সাইন-ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ আপনার যদি ইতিমধ্যেই একটি Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।
- প্রকল্পের নাম এই প্রকল্পের অংশগ্রহণকারীদের জন্য প্রদর্শনের নাম। এটি একটি অক্ষর স্ট্রিং যা Google API দ্বারা ব্যবহৃত হয় না এবং আপনি যে কোনো সময় এটি আপডেট করতে পারেন।
- সমস্ত Google ক্লাউড প্রজেক্ট জুড়ে প্রোজেক্ট আইডি অবশ্যই অনন্য হতে হবে এবং অপরিবর্তনীয় (সেট করার পরে পরিবর্তন করা যাবে না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত আপনি এটা কি যত্ন না. বেশিরভাগ কোডল্যাবে, আপনাকে প্রজেক্ট আইডি উল্লেখ করতে হবে (এবং এটি সাধারণত
PROJECT_ID
হিসাবে চিহ্নিত করা হয়), তাই আপনি যদি এটি পছন্দ না করেন তবে অন্য একটি এলোমেলো তৈরি করুন, অথবা, আপনি নিজের চেষ্টা করে দেখতে পারেন এটি উপলব্ধ কিনা। তারপর প্রকল্প তৈরি হওয়ার পরে এটি "হিমায়িত" হয়। - একটি তৃতীয় মান আছে, একটি প্রকল্প নম্বর যা কিছু API ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি মান সম্পর্কে আরও জানুন।
- এরপরে, ক্লাউড রিসোর্স/এপিআই ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে। এই কোডল্যাবের মাধ্যমে চালানোর জন্য খুব বেশি খরচ করা উচিত নয়, যদি কিছু থাকে। রিসোর্স বন্ধ করতে যাতে আপনি এই টিউটোরিয়ালের বাইরে বিলিং করতে না পারেন, কোডল্যাবের শেষে পাওয়া যেকোনো "ক্লিন-আপ" নির্দেশাবলী অনুসরণ করুন। Google ক্লাউডের নতুন ব্যবহারকারীরা $300 USD বিনামূল্যের ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷
ক্লাউড শেল শুরু করুন
যদিও Google ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালিত হতে পারে, এই কোডল্যাবে আপনি Google ক্লাউড শেল ব্যবহার করবেন, একটি কমান্ড লাইন পরিবেশ যা ক্লাউডে চলছে।
GCP কনসোল থেকে উপরের ডানদিকে টুলবারে ক্লাউড শেল আইকনে ক্লিক করুন:
পরিবেশের ব্যবস্থা করতে এবং সংযোগ করতে এটি শুধুমাত্র কয়েক মুহূর্ত নিতে হবে। এটি সমাপ্ত হলে, আপনি এই মত কিছু দেখতে হবে:
এই ভার্চুয়াল মেশিনটি আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুল দিয়ে লোড করা হয়েছে। এটি একটি ক্রমাগত 5GB হোম ডিরেক্টরি অফার করে এবং Google ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এই ল্যাবে আপনার সমস্ত কাজ কেবল একটি ব্রাউজার দিয়ে করা যেতে পারে।
আপনি শুরু করার আগে
ক্লাউড শেলের ভিতরে, নিশ্চিত করুন যে আপনার প্রকল্প আইডি সেটআপ করা আছে:
PROJECT_ID=your-project-id gcloud config set project $PROJECT_ID
4. একটি ক্লাউড রান পরিষেবা স্থাপন করুন৷
ইভেন্টগুলি পেতে একটি ক্লাউড রান পরিষেবা স্থাপন করুন৷ আপনি ক্লাউড রানের হ্যালো কন্টেইনার স্থাপন করবেন যা ক্লাউড ইভেন্টের বিষয়বস্তু লগ করে।
প্রথমে, ক্লাউড রানের জন্য প্রয়োজনীয় পরিষেবাগুলি সক্ষম করুন:
gcloud services enable run.googleapis.com
ক্লাউড রানে হ্যালো কন্টেইনার স্থাপন করুন:
REGION=us-central1 SERVICE_NAME=hello gcloud run deploy $SERVICE_NAME \ --allow-unauthenticated \ --image=gcr.io/cloudrun/hello \ --region=$REGION
সফল হলে, কমান্ড লাইন পরিষেবা URL প্রদর্শন করে। পরিষেবাটি এখন নিয়োজিত হয়েছে কিনা তা দুবার চেক করতে আপনি যেকোনো ব্রাউজার উইন্ডোতে পরিষেবা URL খুলতে পারেন৷
5. ইভেন্ট আবিষ্কার
Eventarc-এ ট্রিগার তৈরি করার আগে, আপনি ইভেন্টের উত্সগুলি কী কী, তারা যে ধরনের ইভেন্টগুলি নির্গত করতে পারে এবং কীভাবে সেগুলি ব্যবহার করার জন্য ট্রিগারগুলি কনফিগার করতে হয় তা আবিষ্কার করতে পারেন।
বিভিন্ন ধরণের ইভেন্টের তালিকা দেখতে:
gcloud beta eventarc attributes types list NAME DESCRIPTION google.cloud.audit.log.v1.written Cloud Audit Log written google.cloud.pubsub.topic.v1.messagePublished Cloud Pub/Sub message published google.cloud.storage.object.v1.archived Cloud Storage: Sent when a live version of an (object versioned) object is archived or deleted. google.cloud.storage.object.v1.deleted Cloud Storage: Sent when an object has been permanently deleted. google.cloud.storage.object.v1.finalized Cloud Storage: Sent when a new object (or a new generation of an existing object). google.cloud.storage.object.v1.metadataUpdated Cloud Storage: Sent when the metadata of an existing object changes.
প্রতিটি ইভেন্টের প্রকার সম্পর্কে আরও তথ্য পেতে:
gcloud beta eventarc attributes types describe google.cloud.audit.log.v1.written attributes: type,serviceName,methodName,resourceName description: 'Cloud Audit Log: Sent when a log is written.' name: google.cloud.audit.log.v1.written
একটি নির্দিষ্ট ইভেন্ট প্রকার নির্গত পরিষেবাগুলির তালিকা দেখতে:
gcloud beta eventarc attributes service-names list --type=google.cloud.audit.log.v1.written SERVICE_NAME DISPLAY_NAME accessapproval.googleapis.com Access Approval accesscontextmanager.googleapis.com Access Context Manager admin.googleapis.com Google Workspace Admin aiplatform.googleapis.com AI Platform (under Vertex AI) apigee.googleapis.com Apigee apigeeconnect.googleapis.com Apigee Connect ... workflows.googleapis.com Workflows
পদ্ধতির নামের তালিকা দেখতে (উপ-ইভেন্ট) যা প্রতিটি পরিষেবা নির্গত করতে পারে:
gcloud beta eventarc attributes method-names list --type=google.cloud.audit.log.v1.written --service-name=workflows.googleapis.com METHOD_NAME google.cloud.workflows.v1.Workflows.CreateWorkflow google.cloud.workflows.v1.Workflows.DeleteWorkflow google.cloud.workflows.v1.Workflows.GetWorkflow google.cloud.workflows.v1.Workflows.ListWorkflows google.cloud.workflows.v1.Workflows.UpdateWorkflow google.cloud.workflows.v1beta.Workflows.CreateWorkflow google.cloud.workflows.v1beta.Workflows.DeleteWorkflow google.cloud.workflows.v1beta.Workflows.GetWorkflow google.cloud.workflows.v1beta.Workflows.ListWorkflows google.cloud.workflows.v1beta.Workflows.UpdateWorkflow
6. একটি পাব/সাব ট্রিগার তৈরি করুন৷
ইভেন্টগুলি পাওয়ার একটি উপায় হল ক্লাউড পাব/সাবের মাধ্যমে। যেকোনো অ্যাপ্লিকেশন Pub/Sub-এ বার্তা প্রকাশ করতে পারে এবং এই বার্তাগুলি Eventarc-এর মাধ্যমে Cloud Run-এ বিতরণ করা যেতে পারে।
সেটআপ
কোনো ট্রিগার তৈরি করার আগে, Eventarc-এর জন্য প্রয়োজনীয় পরিষেবাগুলি সক্ষম করুন:
gcloud services enable eventarc.googleapis.com
ট্রিগার দ্বারা ব্যবহার করার জন্য আপনার একটি পরিষেবা অ্যাকাউন্টও প্রয়োজন। একটি পরিষেবা অ্যাকাউন্ট তৈরি করুন:
SERVICE_ACCOUNT=eventarc-trigger-sa gcloud iam service-accounts create $SERVICE_ACCOUNT
তৈরি করুন
আমাদের স্থাপন করা ক্লাউড রান পরিষেবাতে পাব/সাব বিষয়ে প্রকাশিত ইভেন্টগুলি ফিল্টার করতে একটি ট্রিগার তৈরি করুন:
TRIGGER_NAME=trigger-pubsub gcloud eventarc triggers create $TRIGGER_NAME \ --destination-run-service=$SERVICE_NAME \ --destination-run-region=$REGION \ --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \ --location=$REGION \ --service-account=$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com
পরীক্ষা
পাব/সাব ট্রিগার কভারের অধীনে একটি বিষয় তৈরি করে। আসুন এটি খুঁজে বের করি এবং একটি পরিবর্তনশীলকে বরাদ্দ করি:
TOPIC_ID=$(gcloud eventarc triggers describe $TRIGGER_NAME --location $REGION --format='value(transport.pubsub.topic)')
বিষয়ে একটি বার্তা প্রকাশ করতে gcloud
ব্যবহার করুন:
gcloud pubsub topics publish $TOPIC_ID --message="Hello World"
ক্লাউড রান সার্ভিস ইনকামিং মেসেজের বডি লগ করে। আপনি এটি আপনার ক্লাউড রান উদাহরণের লগ বিভাগে দেখতে পারেন:
একটি বিদ্যমান পাব/সাব বিষয় দিয়ে তৈরি করুন
ডিফল্টরূপে, আপনি যখন একটি পাব/সাব ট্রিগার তৈরি করেন, তখন আপনার অ্যাপ্লিকেশন এবং একটি ক্লাউড রান পরিষেবার মধ্যে একটি পরিবহন বিষয় হিসাবে ব্যবহার করার জন্য Eventarc কভারের নীচে একটি বিষয় তৈরি করে৷ এটি সহজে এবং দ্রুত একটি পাব/সাব ব্যাকড ট্রিগার তৈরি করতে কার্যকর কিন্তু কখনও কখনও আপনি একটি বিদ্যমান বিষয় ব্যবহার করতে চান। Eventarc আপনাকে --transport-topic
gcloud পতাকা সহ একই প্রকল্পে একটি বিদ্যমান পাব/সাব বিষয় নির্দিষ্ট করতে দেয়।
এটি কীভাবে কাজ করে তা দেখতে, পরিবহন বিষয় হিসাবে ব্যবহার করার জন্য একটি পাব/সাব বিষয় তৈরি করুন:
TOPIC_ID=eventarc-topic gcloud pubsub topics create $TOPIC_ID
একটি ট্রিগার তৈরি করুন:
TRIGGER_NAME=trigger-pubsub-existing gcloud eventarc triggers create $TRIGGER_NAME \ --destination-run-service=$SERVICE_NAME \ --destination-run-region=$REGION \ --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \ --location=$REGION \ --transport-topic=projects/$PROJECT_ID/topics/$TOPIC_ID \ --service-account=$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com
আপনি বিষয়টিতে একটি বার্তা পাঠিয়ে ট্রিগার পরীক্ষা করতে পারেন:
gcloud pubsub topics publish $TOPIC_ID --message="Hello again"
7. একটি ক্লাউড স্টোরেজ ট্রিগার তৈরি করুন৷
এই ধাপে, আপনি ক্লাউড স্টোরেজ থেকে ইভেন্ট শোনার জন্য একটি ট্রিগার তৈরি করবেন।
সেটআপ
প্রথমে, এর থেকে ইভেন্টগুলি পেতে একটি বালতি তৈরি করুন:
BUCKET_NAME=eventarc-gcs-$PROJECT_ID gsutil mb -l $REGION gs://$BUCKET_NAME
eventarc.eventReceiver
ভূমিকা মঞ্জুর করুন, যাতে পরিষেবা অ্যাকাউন্টটি একটি ক্লাউড স্টোরেজ ট্রিগারে ব্যবহার করা যেতে পারে:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --role roles/eventarc.eventReceiver \ --member serviceAccount:$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com
এছাড়াও আপনাকে ক্লাউড স্টোরেজ ট্রিগারের জন্য ক্লাউড স্টোরেজ পরিষেবা অ্যাকাউন্টে pubsub.publisher
ভূমিকা যোগ করতে হবে:
SERVICE_ACCOUNT_STORAGE=$(gsutil kms serviceaccount -p $PROJECT_ID) gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$SERVICE_ACCOUNT_STORAGE \ --role roles/pubsub.publisher
তৈরি করুন
বালতি থেকে আপনার পরিষেবাতে নতুন ফাইল তৈরির ইভেন্টগুলি রুট করার জন্য একটি ট্রিগার তৈরি করুন:
TRIGGER_NAME=trigger-storage gcloud eventarc triggers create $TRIGGER_NAME \ --destination-run-service=$SERVICE_NAME \ --destination-run-region=$REGION \ --event-filters="type=google.cloud.storage.object.v1.finalized" \ --event-filters="bucket=$BUCKET_NAME" \ --location=$REGION \ --service-account=$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com
পরীক্ষা
ট্রিগার সফলভাবে তৈরি হয়েছে তা নিশ্চিত করতে সমস্ত ট্রিগারের তালিকা করুন:
gcloud eventarc triggers list
ক্লাউড স্টোরেজ বালতিতে একটি ফাইল আপলোড করুন:
echo "Hello World" > random.txt gsutil cp random.txt gs://$BUCKET_NAME/random.txt
আপনি যদি ক্লাউড কনসোলে ক্লাউড রান পরিষেবার লগগুলি পরীক্ষা করেন, আপনার প্রাপ্ত ইভেন্টটি দেখতে হবে:
8. একটি ক্লাউড অডিট লগ ট্রিগার তৈরি করুন৷
যদিও ক্লাউড স্টোরেজ ট্রিগার হল ক্লাউড স্টোরেজ ইভেন্টগুলি শোনার আরও ভাল উপায়, এই ধাপে, আপনি একই কাজ করার জন্য একটি ক্লাউড অডিট লগ ট্রিগার তৈরি করেন৷
সেটআপ
একটি পরিষেবা থেকে ইভেন্টগুলি পেতে, আপনাকে ক্লাউড অডিট লগগুলি সক্ষম করতে হবে৷ ক্লাউড কনসোল থেকে, উপরের বামদিকের মেনু থেকে IAM & Admin
এবং Audit Logs
নির্বাচন করুন। পরিষেবার তালিকায়, Google Cloud Storage
চেক করুন:
ডানদিকে, নিশ্চিত করুন যে Admin
, Read
এবং Write
নির্বাচন করা হয়েছে এবং Save
ক্লিক করুন:
তৈরি করুন
বালতি থেকে আপনার পরিষেবাতে নতুন ফাইল তৈরির ইভেন্টগুলি রুট করার জন্য একটি ট্রিগার তৈরি করুন:
TRIGGER_NAME=trigger-auditlog-storage gcloud eventarc triggers create $TRIGGER_NAME\ --destination-run-service=$SERVICE_NAME \ --destination-run-region=$REGION \ --event-filters="type=google.cloud.audit.log.v1.written" \ --event-filters="serviceName=storage.googleapis.com" \ --event-filters="methodName=storage.objects.create" \ --event-filters-path-pattern="resourceName=/projects/_/buckets/$BUCKET_NAME/objects/*" \ --location=$REGION \ --service-account=$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com
পরীক্ষা
অডিট লগ ট্রিগারগুলি শুরু হতে একটু সময় নেয়। আপনি পরীক্ষা করতে পারেন যে সমস্ত ট্রিগার তালিকাবদ্ধ করে ট্রিগার তৈরি হয়েছে:
gcloud eventarc triggers list
আপনার দেখতে হবে যে ACTIVE
ক্ষেত্রটি Yes
:
NAME TYPE DESTINATION ACTIVE trigger-auditlog-storage google.cloud.audit.log.v1.written Cloud Run service: hello Yes
ক্লাউড স্টোরেজ বালতিতে আপনি আগের মতো একই ফাইল আপলোড করুন:
gsutil cp random.txt gs://$BUCKET_NAME/random.txt
আপনি যদি ক্লাউড কনসোলে ক্লাউড রান পরিষেবার লগগুলি পরীক্ষা করেন, আপনার প্রাপ্ত ইভেন্টটি দেখতে হবে:
9. Eventarc UI অন্বেষণ করুন
এই ধাপে, আপনি Google ক্লাউড কনসোলে Eventarc UI অন্বেষণ করবেন। Eventarc UI-তে, আপনি সমস্ত ট্রিগারগুলির একটি ওভারভিউ পেতে পারেন, সেগুলি সম্পাদনা করতে এবং মুছে ফেলতে পারেন এবং Google ক্লাউড কনসোল থেকে নতুন ট্রিগার তৈরি করতে পারেন৷
Google Cloud এর Eventarc বিভাগে যান:
আপনি আগে তৈরি করা ট্রিগারগুলির তালিকা দেখতে পাবেন:
আপনি যদি একটি ট্রিগারে ক্লিক করেন, আপনি ট্রিগারের বিশদ বিবরণ দেখতে পারেন, এটি সম্পাদনা করতে বা মুছে ফেলতে পারেন:
এছাড়াও আপনি Create trigger
নির্বাচন করে এবং ট্রিগারের বিবরণ পূরণ করে একটি নতুন ট্রিগার তৈরি করতে পারেন:
10. অভিনন্দন!
কোডল্যাব সম্পূর্ণ করার জন্য অভিনন্দন।
আমরা কভার করেছি কি
- ইভেন্টর্কের দৃষ্টি
- Eventarc-এ ইভেন্টগুলি আবিষ্কার করুন
- একটি ক্লাউড রান সিঙ্ক তৈরি করুন
- পাব/সাবের জন্য একটি ট্রিগার তৈরি করুন
- ক্লাউড স্টোরেজের জন্য একটি ট্রিগার তৈরি করুন
- ক্লাউড অডিট লগের জন্য একটি ট্রিগার তৈরি করুন
- Eventarc UI এক্সপ্লোর করুন