رویدادها ناهمزمان هستند و توسط Google Cloud Pub/Sub، در یک موضوع واحد مدیریت میشوند Project. رویدادها بهروزرسانیهایی را برای همه دستگاهها و ساختارها ارائه میکنند و تا زمانی که رمز دسترسی توسط کاربر لغو نشده و پیامهای رویداد منقضی نشده باشد، دریافت رویدادها تضمین میشود.
رویدادها یکی از ویژگی های اختیاری SDM API هستند. آنها را می توان به راحتی با استفاده از پروژه Google Cloud خود پیاده سازی و تأیید کرد.
فعال کردن رویدادها
رویدادها ممکن است در فعال شوند Device Access کنسول. اگر قبلاً این کار را نکرده اید، پروژه خود را در کنسول انتخاب کنید.
اگر قبلاً رویدادها را فعال کردهاید (به عنوان مثال، در حین ایجاد پروژه )، فیلد موضوع Pub/Sub در بخش اطلاعات پروژه از قبل باید مقداری به نام شناسه موضوع در قالب زیر داشته باشد:
projects/sdm-prod/topics/enterprise-project-id
اگر رویدادها را فعال نکردهاید:
- روی نماد برای موضوع Pub/Sub کلیک کنید و Edit را انتخاب کنید.
- فعال کردن رویدادها را علامت بزنید و روی ذخیره کلیک کنید.
- شناسه موضوع در قالب نشان داده شده در بالا برای شما ایجاد می شود.
شناسه موضوع خود را کپی کنید، برای ایجاد اشتراک در موضوع به آن نیاز دارید تا پیام های رویداد قابل بازیابی باشند.
یک اشتراک کششی ایجاد کنید
اشتراک کششی جایی است که مشترک درخواست هایی را برای پیام های رویداد در صف به سرور Pub/Sub آغاز می کند. این یک راه سریع و آسان برای تأیید اینکه رویدادها برای دستگاههای مجاز شما ایجاد میشوند، است.
Cloud Shell را برای پروژه Google Cloud خود باز کنید:
در اعلان Cloud Shell، دستور زیر را اجرا کنید تا با استفاده از هر subscription-id دوست دارید و شناسه موضوع منحصر به فرد خود، یک اشتراک کششی برای موضوع خود ایجاد کنید:
gcloud pubsub subscriptions create subscription-id --topic=projects/sdm-prod/topics/enterprise-project-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'
رویدادها برای همه ساختارها و دستگاهها پس از این فراخوان API منتشر میشوند.
رویدادها را ایجاد کنید
رویدادها برای همه تغییرات فیلد صفت ایجاد میشوند که برخی از آنها خودکار و برخی دستی هستند.
برای مثال، اگر دمای محیط نزدیک Nest Thermostat تغییر کند، رویدادی برایدما صفت به طور خودکار با یک مقدار جدید ambientTemperatureCelsius
ارسال می شود.
برای تولید دستی یکی، یا:
- وضعیت دستگاهتان را از نظر فیزیکی تغییر دهید، مانند تغییر حالت Nest Thermostat.
- رویدادی مانند حرکت، شخص یا صدا را در Google Nest Cam Indoor راهاندازی کنید.
- یک فرمان دستگاه را با استفاده از SDM API اجرا کنید .
مشاهده پیام ها
پیامهای رویداد را میتوان در پروژه Google Cloud، در بخش اشتراکهای Pub/Sub مشاهده کرد:
به Google Cloud Pub/Sub Subscriptions بروید
- روی شناسه اشتراکی که قبلا ایجاد کردید کلیک کنید.
- در صفحه جزئیات اشتراک ، باید فعالیت نمودار تعداد پیامهای بدون تایید را ببینید. این نشان می دهد که پیام های رویداد برای اشتراک شما ارسال شده است. اگر هیچ فعالیتی نمیبینید، کمی صبر کنید یا چند رویداد دیگر ایجاد کنید.
- روی VIEW MESSAGES کلیک کنید تا پانل پیام ها ظاهر شود.
- برای مشاهده پیام ها روی PULL کلیک کنید. آنها باید با اقداماتی که برای ایجاد رویدادها استفاده کردید مطابقت داشته باشند.
همچنین میتوان پیامها را در Cloud Shell با دستور pull
اصلی مشاهده کرد:
gcloud pubsub subscriptions pull subscription-id
برای اطلاعات بیشتر در مورد انواع اشتراک، و همچنین انواع رویدادهای ارسال شده توسط SDM API و نحوه استفاده از آنها، به رویدادها مراجعه کنید.
مدیریت پیام ها
برای تمیز نگه داشتن اشتراک و جلوگیری از تحویل پیام های تکراری به سایر مشترکین، پیام ها باید به طور مرتب تأیید و پاک شوند. همه پیام های اشتراک را می توان به صورت دستی در بخش اشتراک های Pub/Sub پاک کرد:
به Google Cloud Pub/Sub Subscriptions بروید
- روی شناسه اشتراک کلیک کنید.
- چند راه برای تصدیق و پاکسازی وجود دارد:
- روی VIEW MESSAGES کلیک کنید تا پانل پیام ها ظاهر شود. چک باکس Enable ack messages را علامت بزنید و روی PULL کلیک کنید تا همه پیامها را مشاهده و تأیید کنید.
- روی PURGE MESSAGES کلیک کنید تا همه پیامهای موجود با تأیید بدون مشاهده آنها پاک شوند. برای تایید روی PURGE کلیک کنید.
همچنین میتوان پیامها را در Cloud Shell با استفاده از پرچم --auto-ack
با دستور اصلی pull
پاک کرد:
gcloud pubsub subscriptions pull subscription-id --auto-ack
اشتراک ها را مدیریت کنید
اشتراک ها ممکن است به روش های مختلفی پیکربندی شوند، همانطور که در استفاده از ویژگی های اشتراک توضیح داده شده است.
در حالی که نحوه مدیریت اشتراکها و پیامها به شما بستگی دارد، برای برنامههای تولیدی، توصیه میکنیم از حسابهای سرویس برای احراز هویت استفاده کنید، نه از یک حساب کاربری مانند آنچه تاکنون در این راهنمای شروع سریع داشتهاید. حساب سرویس توسط یک برنامه کاربردی یا ماشین مجازی استفاده می شود، نه یک شخص، و دارای کلید حساب منحصر به فرد خود است.
برای اطلاعات بیشتر در مورد احراز هویت حساب سرویس با Device Access، رویدادها را ببینید.