رویدادها ناهمزمان هستند و توسط Google Cloud Pub/Sub، در یک موضوع واحد مدیریت میشوند Project. رویدادها بهروزرسانیهایی را برای همه دستگاهها و ساختارها ارائه میکنند و تا زمانی که رمز دسترسی توسط کاربر لغو نشده و پیامهای رویداد منقضی نشده باشد، دریافت رویدادها تضمین میشود.
رویدادها یکی از ویژگی های اختیاری SDM API هستند. آنها را می توان به راحتی با استفاده از پروژه Google Cloud خود پیاده سازی و تأیید کرد.
فعال کردن رویدادها
رویدادها ممکن است در فعال شوند Device Access کنسول. اگر قبلاً این کار را نکرده اید، پروژه خود را در کنسول انتخاب کنید.
اگر قبلاً رویدادها را فعال کردهاید (مثلاً در حین ایجاد پروژه )، فیلد موضوع Pub/Sub در بخش Enable Pubsub برای رویدادها باید مقداری به نام شناسه موضوع در قالب قدیمیتر داشته باشد:
projects/sdm-prod/topics/enterprise-project-id
این قالب موضوع توسط Google میزبانی می شود و برای پروژه شما باقی می ماند مگر اینکه موضوع Pub/Sub میزبانی شده توسط Google را غیرفعال کنید. اگر بعداً آن را دوباره فعال کنید، به موضوع Pub/Sub که خود میزبانی میشود، تغییر میکنید.
موضوعات Pub/Sub خود میزبانی شده را می توان در پروژه Google Cloud خود یک توسعه دهنده ایجاد یا تغییر داد. توسعه دهنده همچنین مسئول تمام هزینه های مربوط به استفاده از Pub/Sub است، برای اطلاعات بیشتر به قیمت Pub/Sub مراجعه کنید.
موضوع Pub/Sub را ایجاد کنید:
gcloud pubsub topics create {topic} --message-retention-duration=0s
مجوزهای لازم SDM API را برای دسترسی و انتشار داده های رویداد برای شناسه موضوع پروژه خود اعطا کنید:
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 کلیک کنید و فعال کردن رویدادها با موضوع PubSub را انتخاب کنید.
- شناسه موضوع Pub/Sub را که قبلاً ارائه شده یا ایجاد شده است وارد کنید.
شناسه موضوع خود را کپی کنید، برای ایجاد اشتراک در موضوع به آن نیاز دارید تا پیام های رویداد قابل بازیابی باشند.
یک اشتراک کششی ایجاد کنید
اشتراک کششی جایی است که مشترک درخواست هایی را برای پیام های رویداد در صف به سرور Pub/Sub آغاز می کند. این یک راه سریع و آسان برای تأیید اینکه رویدادها برای دستگاههای مجاز شما ایجاد میشوند، است.
Cloud Shell را برای پروژه Google Cloud خود باز کنید:
در اعلان 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'
رویدادها برای همه ساختارها و دستگاهها پس از این فراخوان 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، رویدادها را ببینید.