الأحداث غير متزامنة وتتم إدارتها من خلال خدمة Cloud Pub/Sub من Google، وذلك في موضوع واحد لكل Project. توفّر الأحداث تعديلات لجميع الأجهزة والتركيبات، ويتم ضمان تلقّي الأحداث ما دام المستخدم لم يبطِل رمز الدخول ولم تنتهِ صلاحية رسائل الأحداث.
الأحداث هي ميزة اختيارية في واجهة برمجة التطبيقات SDM API. ويمكن تنفيذها والتحقّق منها بسهولة باستخدام مشروعك على Google Cloud.
تفعيل الأحداث
يمكن تفعيل الأحداث في Device Access وحدة التحكّم. اختَر مشروعك في وحدة التحكّم، إذا لم يسبق لك فعل ذلك.
الانتقال إلى Device Access وحدة التحكّم
إذا سبق لك تفعيل الأحداث (على سبيل المثال، أثناء إنشاء مشروع)، من المفترض أن يتضمّن حقل موضوع Pub/Sub في قسم تفعيل موضوع Pub/Sub لـ "الأحداث" قيمة، تُعرف باسم معرّف الموضوع، بالتنسيق القديم التالي:
projects/sdm-prod/topics/enterprise-project-id
يتم استضافة تنسيق الموضوع هذا على Google وسيظل متاحًا لمشروعك ما لم توقِف موضوع Pub/Sub المستضاف على Google. إذا أعدت تفعيلها لاحقًا، سيتم نقلك إلى موضوع Pub/Sub المستضاف ذاتيًا.
يمكن إنشاء مواضيع النشر/الاشتراك المستضافة ذاتيًا أو تغييرها في مشروع Google Cloud خاص بالمطوّر. يتحمّل المطوّر أيضًا مسؤولية جميع التكاليف المرتبطة باستخدام Pub/Sub. راجِع أسعار Pub/Sub للحصول على مزيد من المعلومات.
أنشئ موضوع Pub/Sub:
gcloud pubsub topics create {topic} --message-retention-duration=0s
امنح أذونات واجهة برمجة التطبيقات SDM اللازمة للوصول إلى بيانات الأحداث ونشرها لمعرّف الموضوع الخاص بمشروعك:
gcloud pubsub topics add-iam-policy-binding projects/{project}/topics/{topic} \
--member="group:sdm-publisher@googlegroups.com" \
--role="roles/pubsub.publisher"
سيكون تنسيق رقم تعريف الموضوع الذي تم إنشاؤه حديثًا على النحو التالي:
projects/gcp-project-name/subscriptions/topic-id
دوِّن رقم تعريف الموضوع، لأنّك ستحتاج إليه لإكمال عملية تفعيل الأحداث. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة إنشاء موضوع.
لتفعيل الأحداث، اتّبِع الخطوات التالية:
- ضَع علامة في المربّع بجانب تفعيل الأحداث وانقر على إنشاء مشروع.
- انقر على الرمز الخاص بموضوع Pub/Sub واختَر تفعيل الأحداث باستخدام موضوع Pub/Sub.
- أدخِل رقم تعريف موضوع Pub/Sub الذي تم تقديمه أو إنشاؤه سابقًا.
انسخ معرّف الموضوع، ستحتاج إليه لإنشاء اشتراك في الموضوع حتى تتمكّن من استرداد رسائل الأحداث.
إنشاء اشتراك سحب
في اشتراك السحب، يبدأ المشترك الطلبات إلى خادم Pub/Sub للحصول على رسائل أحداث في قائمة الانتظار. هذه طريقة سريعة وسهلة للتأكّد من أنّه يتم إنشاء أحداث لأجهزتك المعتمَدة.
افتح Cloud Shell لمشروعك على Google Cloud:
الانتقال إلى Google Cloud Shell
في موجه Cloud Shell، نفِّذ الأمر التالي لإنشاء اشتراك سحب في موضوعك، باستخدام أي subscription-id تريده ومعرّف الموضوع الفريد:
gcloud pubsub subscriptions create subscription-id --topic=projects/gcp-project-name/subscriptions/topic-id
Created subscription [projects/gcp-project-name/subscriptions/subscription-id].
أحداث البدء
لبدء الأحداث لأول مرة بعد إنشاء اشتراك Pub/Sub، عليك إجراء مكالمة لإدراج أجهزتك كمشغّل لمرة واحدة:
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'
سيتم نشر الأحداث لجميع التركيبات والأجهزة بعد إجراء طلب البيانات من واجهة برمجة التطبيقات هذا.
إنشاء أحداث
يتم إنشاء أحداث لجميع التغييرات في حقول السمات، وبعضها تلقائي وبعضها يدوي.
على سبيل المثال، إذا تغيّرت درجة الحرارة المحيطة بالقرب من ترموستات Nest، سيتم تلقائيًا إرسال حدثTemperature مع قيمة ambientTemperatureCelsius
جديدة.
لإنشاء رمز يدويًا، يمكنك اتّخاذ أحد الإجراءَين التاليَين:
- تغيير حالة جهازك بشكل مباشر، مثل تغيير وضع ترموستات Nest
- تفعيل حدث، مثل الحركة أو الشخص أو الصوت على كاميرا Google Nest Cam Indoor
- تنفيذ أمر جهاز باستخدام واجهة برمجة التطبيقات SDM
عرض الرسائل
يمكن الاطّلاع على رسائل الأحداث في مشروعك على Google Cloud، وذلك في قسم "اشتراكات Pub/Sub" باتّباع الخطوات التالية:
الانتقال إلى "اشتراكات Google Cloud Pub/Sub"
- انقر على رقم تعريف الاشتراك الذي أنشأته سابقًا.
- في شاشة تفاصيل الاشتراك، من المفترض أن يظهر لك نشاط في الرسم البياني عدد الرسائل غير المستلمة. يشير ذلك إلى أنّ رسائل الأحداث قد وصلت إليك من خلال اشتراكك. إذا لم يظهر لك أي نشاط، انتظِر قليلاً أو أنشئ المزيد من الأحداث.
- انقر على عرض الرسائل لفتح لوحة الرسائل.
- انقر على سحب لعرض الرسائل. ويجب أن تتطابق مع الإجراءات التي استخدمتها لإنشاء الأحداث.
يمكن أيضًا عرض الرسائل في Cloud Shell باستخدام الأمر الأساسي pull
:
gcloud pubsub subscriptions pull subscription-id
لمزيد من المعلومات عن أنواع الاشتراكات وأنواع الأحداث التي ترسلها واجهة برمجة التطبيقات SDM وكيفية استخدامها، يُرجى الاطّلاع على الأحداث.
إدارة الرسائل
يجب تأكيد استلام الرسائل وإزالتها بانتظام للحفاظ على اشتراك نظيف وتجنُّب تسليم الرسائل المكرّرة إلى المشتركين الآخرين. يمكن حذف جميع رسائل الاشتراك يدويًا في قسم "اشتراكات Pub/Sub" باتّباع الخطوات التالية:
الانتقال إلى "اشتراكات Google Cloud Pub/Sub"
- انقر على رقم تعريف الاشتراك.
- هناك عدة طرق للإقرار بالخطأ وإزالة البيانات:
- انقر على عرض الرسائل لفتح لوحة الرسائل. ضَع علامة في مربّع الاختيار تفعيل رسائل التأكيد وانقر على سحب لعرض جميع الرسائل وتأكيد استلامها.
- انقر على إزالة الرسائل نهائيًا لإزالة جميع الرسائل الحالية نهائيًا من خلال تأكيد الإجراء بدون عرض الرسائل. انقر على PURGE للتأكيد.
يمكن أيضًا إزالة الرسائل نهائيًا في Cloud Shell باستخدام العلامة --auto-ack
مع الأمر الأساسي pull
:
gcloud pubsub subscriptions pull subscription-id --auto-ack
إدارة الاشتراكات
يمكن ضبط الاشتراكات بطرق متنوعة، كما هو موضّح في مقالة استخدام خصائص الاشتراك.
مع أنّ طريقة إدارة الاشتراكات والرسائل تعود إليك، ننصحك باستخدام حسابات الخدمة للمصادقة في تطبيق مخصّص للإنتاج، بدلاً من حساب مستخدم كما فعلت حتى الآن في دليل البدء السريع هذا. يستخدم التطبيق أو الجهاز الافتراضي حساب خدمة، وليس شخصًا، وله مفتاح حساب فريد خاص به.
لمزيد من المعلومات حول مصادقة حساب الخدمة باستخدام Device Access، يُرجى الاطّلاع على الأحداث.