1. مقدمة
يتيح لك التشغيل في السحابة الإلكترونية تشغيل حاويات بدون حالة في بيئة مُدارة بالكامل. تم إنشاء هذا الإصدار من Knative مفتوح المصدر، ما يتيح لك اختيار تشغيل الحاويات إما مُدارة بالكامل باستخدام Cloud Run، أو في مجموعة Google Kubernetes Engine مع Cloud Run for Anthos.
تسهِّل منصة Eventarc ربط خدمات مختلفة (Cloud Functions وCloud Functions وWorkfklows) بأحداث من مصادر مختلفة. ويسمح لك ذلك بإنشاء بُنى تستند إلى الأحداث، حيث يتم إقران الخدمات المصغَّرة وتوزيعها بشكل غير محكم. ويعتني أيضًا بنقل الأحداث وتسليمها والأمان والتفويض ومعالجة الأخطاء نيابةً عنك، ما يحسِّن سرعة أداء المطوِّر ومرونة التطبيقات.
ستتعرّف في هذا الدرس التطبيقي على منصة Eventarc. وبشكل أكثر تحديدًا، سيكون بإمكانك الاستماع إلى أحداث من Pub/Sub، وCloud Storage، وCloud التدقيق في السجلات باستخدام Eventarc وتمريرها إلى خدمة Cloud Run.
المُعطيات
- رؤية شركة Eventarc
- الاطّلاع على الفعاليات في Eventarc
- إنشاء حوض Cloud Run
- إنشاء مشغِّل لنشر/اشتراك
- إنشاء مشغِّل في Cloud Storage
- إنشاء عامل تشغيل لسجلّات تدقيق السحابة الإلكترونية
- استكشِف واجهة مستخدم Eventarc.
2. رؤية شركة Eventarc
تهدف شركة Eventarc إلى إرسال الفعاليات من مختلف Google وGoogle Cloud ومصادر فعاليات تابعة لجهات خارجية إلى وجهات فعاليات Google Cloud.
مصادر Google Cloud | مصادر الأحداث التي تملكها منتجات Google Cloud |
مصادر Google | مصادر الأحداث التي تملكها Google، مثل Gmail وHangouts و"إدارة Android" وغيرها |
المصادر المخصّصة | مصادر الأحداث التي لا تملكها Google وينشئها المستخدمون النهائيون بأنفسهم |
مصادر تابعة لجهات خارجية | مصادر الأحداث التي لا تملكها Google ولا من إنشاء العملاء. ويشمل ذلك مصادر الأحداث الرائجة، مثل Check Point CloudGuard وDatadog وForgeRock وLacework وغيرها، والتي يملكها شركاء ومقدّمو خدمات تابعون لجهات خارجية وصيانتها. |
يتم تسوية الأحداث إلى تنسيق CloudEvents v1.0 لإتاحة التشغيل التفاعلي على مستوى الخدمات. CloudEvent هي مواصفات مفتوحة محايدة للمورّدين تصف بيانات الأحداث بتنسيقات شائعة، وتتيح إمكانية التشغيل التفاعلي على مستوى الخدمات والأنظمة الأساسية والأنظمة.
3- الإعداد والمتطلبات
إعداد بيئة ذاتية
- سجِّل الدخول إلى Google Cloud Console وأنشئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. إذا لم يكن لديك حساب على Gmail أو Google Workspace، عليك إنشاء حساب.
- اسم المشروع هو الاسم المعروض للمشاركين في هذا المشروع. وهي عبارة عن سلسلة أحرف لا تستخدمها Google APIs، ويمكنك تحديثها في أي وقت.
- يجب أن يكون رقم تعريف المشروع فريدًا في جميع مشاريع Google Cloud وغير قابل للتغيير (لا يمكن تغييره بعد ضبطه). تنشئ Cloud Console سلسلة فريدة تلقائيًا. فعادةً لا تهتم بما هو. في معظم الدروس التطبيقية حول الترميز، يجب الرجوع إلى رقم تعريف المشروع (والذي يتم تحديده عادةً على أنّه
PROJECT_ID
). لذلك، إذا لم يعجبك، يمكنك إنشاء رقم تعريف عشوائي آخر، أو يمكنك تجربة رقم تعريف المشروع الخاص بك ومعرفة ما إذا كان متاحًا. بعد أن يصبح "مجمّد" بعد إنشاء المشروع. - هناك قيمة ثالثة، وهي رقم المشروع الذي تستخدمه بعض واجهات برمجة التطبيقات. اطّلِع على مزيد من المعلومات حول هذه القيم الثلاث في المستندات.
- بعد ذلك، عليك تفعيل الفوترة في Cloud Console لاستخدام الموارد/واجهات برمجة التطبيقات في Cloud. إنّ تنفيذ هذا الدرس التطبيقي حول الترميز لن يكون مكلفًا أو مكلفًا على الإطلاق. لإيقاف تشغيل الموارد حتى لا تتحمل الفوترة بعد أكثر من هذا البرنامج التعليمي، اتبع أي عملية "تنظيف". التعليمات الموجودة في نهاية الدرس التطبيقي حول الترميز. يكون مستخدمو Google Cloud الجدد مؤهَّلون للانضمام إلى برنامج فترة تجريبية مجانية بقيمة 300 دولار أمريكي.
بدء Cloud Shell
مع أنّه يمكن إدارة Google Cloud عن بُعد من الكمبيوتر المحمول، ستستخدم في هذا الدرس التطبيقي Google Cloud Shell، وهي بيئة سطر أوامر يتم تشغيلها في السحابة الإلكترونية.
من وحدة تحكّم Google Cloud Platform، انقر على رمز Cloud Shell في شريط الأدوات العلوي الأيسر:
من المفترَض أن تستغرق عملية إدارة الحسابات والاتصال بالبيئة بضع لحظات فقط. عند الانتهاء، من المفترض أن يظهر لك شيء مثل هذا:
يتم تحميل هذه الآلة الافتراضية مزوّدة بكل أدوات التطوير التي ستحتاج إليها. وتوفّر هذه الشبكة دليلاً رئيسيًا دائمًا بسعة 5 غيغابايت وتعمل على Google Cloud، ما يحسّن بشكل كبير من أداء الشبكة والمصادقة. يمكنك تنفيذ كل أعمالك في هذا التمرين من خلال متصفح.
قبل البدء
داخل Cloud Shell، تأكَّد من إعداد رقم تعريف مشروعك:
PROJECT_ID=your-project-id gcloud config set project $PROJECT_ID
4. نشر خدمة Cloud Run
نشر خدمة تشغيل السحابة الإلكترونية لتلقي الأحداث. سيتم نشر حاوية مرحبًا في Cloud Run التي تُسجِّل محتوى Cloudالأحداث.
أولاً، يجب تفعيل الخدمات المطلوبة لتشغيل Cloud:
gcloud services enable run.googleapis.com
انشر حاوية hello في تشغيل السحابة:
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- إنشاء مشغِّل نشر/اشتراك
ويمكن تلقّي الأحداث من خلال خدمة Cloud Pub/Sub. يمكن لأي تطبيق نشر الرسائل إلى Pub/Sub ويمكن تسليم هذه الرسائل إلى Cloud Run من خلال Eventarc.
ضبط إعدادات الجهاز
قبل إنشاء أي مشغِّلات، عليك تفعيل الخدمات المطلوبة لمنصة Eventarc:
gcloud services enable eventarc.googleapis.com
وتحتاج أيضًا إلى حساب خدمة ليتم استخدامه بواسطة المشغلات. إنشاء حساب خدمة:
SERVICE_ACCOUNT=eventarc-trigger-sa gcloud iam service-accounts create $SERVICE_ACCOUNT
إنشاء
أنشئ عامل تشغيل لفلترة الأحداث المنشورة في موضوع النشر/الاشتراك في خدمة Cloud Run التي تم نشرها:
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"
تسجِّل خدمة تشغيل السحابة الإلكترونية نص الرسالة الواردة. يمكنك عرض هذا في قسم السجلات لمثيل Cloud Run:
الإنشاء باستخدام موضوع نشر/اشتراك حالي
عندما تنشئ مشغِّل نشر/اشتراك تلقائيًا، تنشئ Eventarc موضوعًا تحت الغلاف لاستخدامه كموضوع نقل بين تطبيقك وخدمة تشغيل السحابة الإلكترونية. يفيدك هذا الخيار في إنشاء مشغِّل متوافق مع ميزة "النشر/الاشتراك" بسهولة وسرعة، ولكن قد تحتاج أحيانًا إلى استخدام موضوع حالي. يتيح لك Eventarc تحديد موضوع نشر/اشتراك حالي في المشروع نفسه باستخدام علامة gcloud --transport-topic
.
للتعرّف على ذلك، أنشِئ موضوع النشر/الاشتراك لاستخدامه كموضوع للنقل:
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. إنشاء مشغِّل في Cloud Storage
في هذه الخطوة، سيتم إنشاء عامل تشغيل للاستماع إلى الأحداث من Cloud Storage.
ضبط إعدادات الجهاز
عليك أولاً إنشاء حزمة لتلقّي الأحداث من:
BUCKET_NAME=eventarc-gcs-$PROJECT_ID gsutil mb -l $REGION gs://$BUCKET_NAME
منح الدور "eventarc.eventReceiver
" حتى يمكن استخدام حساب الخدمة في مشغّل Cloud Storage:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --role roles/eventarc.eventReceiver \ --member serviceAccount:$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com
عليك أيضًا إضافة الدور "pubsub.publisher
" إلى حساب خدمة Cloud Storage لعوامل التشغيل في Cloud Storage:
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
تحميل ملف إلى حزمة Cloud Storage:
echo "Hello World" > random.txt gsutil cp random.txt gs://$BUCKET_NAME/random.txt
إذا راجعت سجلات خدمة Cloud Run في Cloud Console، من المفترض أن يظهر لك الحدث الذي تم استلامه:
8. إنشاء مشغِّل سجلات تدقيق السحابة الإلكترونية
على الرغم من أنّ مشغّل Cloud Storage هو الطريقة الأفضل للاستماع إلى أحداث Cloud Storage، يمكنك في هذه الخطوة إنشاء مشغِّل سجلّ تدقيق Cloud لتنفيذ الإجراء نفسه.
ضبط إعدادات الجهاز
لتلقّي الأحداث من إحدى الخدمات، عليك تفعيل سجلّات تدقيق السحابة الإلكترونية. من Cloud Console، اختَر 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
حمِّل الملف نفسه إلى حزمة Cloud Storage كما فعلت سابقًا:
gsutil cp random.txt gs://$BUCKET_NAME/random.txt
إذا راجعت سجلات خدمة Cloud Run في Cloud Console، من المفترض أن يظهر لك الحدث الذي تم استلامه:
9. استكشِف واجهة مستخدم Eventarc.
في هذه الخطوة، يمكنك استكشاف واجهة مستخدم Eventarc في Google Cloud Console. في واجهة مستخدم Eventarc، يمكنك الحصول على نظرة عامة على جميع المشغِّلات وتعديلها وحذفها وإنشاء مشغِّلات جديدة من Google Cloud Console.
انتقِل إلى قسم Eventarc في Google Cloud:
ستظهر لك قائمة بالعوامل المُشغِّلة التي أنشأتها سابقًا:
إذا نقرت على أحد المشغِّلات، يمكنك الاطّلاع على تفاصيله أو تعديله أو حذفه:
يمكنك أيضًا إنشاء عامل تشغيل جديد من خلال النقر على Create trigger
وملء تفاصيل العامل المفعِّل:
10. تهانينا!
تهانينا على إكمال الدرس التطبيقي حول الترميز.
المواضيع التي تناولناها
- رؤية شركة Eventarc
- الاطّلاع على الفعاليات في Eventarc
- إنشاء حوض Cloud Run
- إنشاء مشغِّل لنشر/اشتراك
- إنشاء مشغِّل في Cloud Storage
- إنشاء عامل تشغيل لسجلّات تدقيق السحابة الإلكترونية
- استكشِف واجهة مستخدم Eventarc.