Peristiwa bersifat asinkron dan dikelola oleh Google Cloud Pub/Sub, dalam satu topik per Project. Peristiwa memberikan info terbaru untuk semua perangkat dan struktur, serta penerimaan peristiwa dijamin selama token akses tidak dicabut oleh pengguna dan pesan peristiwa belum berakhir.
Peristiwa adalah fitur opsional dari SDM API. Kebijakan ini dapat diterapkan dan diverifikasi dengan mudah menggunakan project Google Cloud Anda.
Aktifkan acara
Acara dapat diaktifkan di Device Access Console. Pilih Project Anda di Konsol, jika Anda belum melakukannya.
Jika Anda telah mengaktifkan peristiwa (misalnya, selama pembuatan project), kolom Topik Pub/Sub di bagian Aktifkan topik Pub/Sub untuk Peristiwa seharusnya sudah memiliki nilai, yang disebut ID Topik, dalam format yang lebih lama:
projects/sdm-prod/topics/enterprise-project-id
Format topik ini dihosting oleh Google dan akan tetap ada untuk project Anda kecuali jika Anda menonaktifkan topik Pub/Sub yang dihosting oleh Google. Jika Anda mengaktifkannya kembali nanti, Anda akan dialihkan ke topik Pub/Sub yang dihosting sendiri.
Topik Pub/Sub yang dihosting sendiri dapat dibuat atau diubah di project Google Cloud milik developer. Developer juga bertanggung jawab atas semua biaya yang terkait dengan penggunaan Pub/Sub. Lihat harga Pub/Sub untuk mengetahui informasi selengkapnya.
Buat topik Pub/Sub:
gcloud pubsub topics create {topic} --message-retention-duration=0s
Berikan izin SDM API yang diperlukan untuk mengakses dan memublikasikan data peristiwa untuk ID Topik project Anda:
gcloud pubsub topics add-iam-policy-binding projects/{project}/topics/{topic} \
--member="group:sdm-publisher@googlegroups.com" \
--role="roles/pubsub.publisher"
Format ID Topik yang baru dibuat akan terlihat seperti:
projects/gcp-project-name/subscriptions/topic-id
Catat ID Topik Anda, Anda akan memerlukannya untuk menyelesaikan pengaktifan peristiwa. Lihat Membuat topik untuk mengetahui informasi lebih lanjut.
Untuk mengaktifkan acara:
- Centang Aktifkan peristiwa, lalu klik Buat Project.
- Klik ikon untuk Pub/Sub topic, lalu pilih Enable events with PubSub topic.
- Masukkan ID Topik Pub/Sub yang diberikan atau dibuat sebelumnya.
Salin ID Topik Anda, Anda akan memerlukannya untuk membuat langganan ke topik agar pesan peristiwa dapat diambil.
Membuat langganan pull
Langganan pull adalah tempat pelanggan memulai permintaan ke server Pub/Sub untuk pesan peristiwa yang diantrekan. Cara ini cepat dan mudah untuk memverifikasi bahwa peristiwa dibuat untuk perangkat resmi Anda.
Buka Cloud Shell untuk project Google Cloud Anda:
Di prompt Cloud Shell, jalankan perintah berikut untuk membuat langganan pull ke topik Anda, menggunakan subscription-id apa pun yang Anda inginkan dan ID Topik unik Anda:
gcloud pubsub subscriptions create subscription-id --topic=projects/gcp-project-name/subscriptions/topic-id
Created subscription [projects/gcp-project-name/subscriptions/subscription-id].
Memulai peristiwa
Untuk memulai peristiwa untuk pertama kalinya setelah langganan Pub/Sub dibuat, lakukan panggilan untuk mencantumkan perangkat Anda sebagai pemicu satu kali:
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'
Peristiwa untuk semua struktur dan perangkat akan dipublikasikan setelah panggilan API ini.
Membuat peristiwa
Peristiwa dibuat untuk semua perubahan kolom karakteristik, beberapa di antaranya otomatis, beberapa manual.
Misalnya, jika suhu sekitar di dekat
Termostat Nest Anda berubah, peristiwa untuk
Temperature trait akan
otomatis dikirim dengan nilai ambientTemperatureCelsius
baru.
Untuk membuatnya secara manual:
- Mengubah status perangkat secara fisik, seperti mengubah mode Termostat Nest Anda.
- Memicu peristiwa, seperti gerakan, orang, atau suara di Google Nest Cam Indoor.
- Jalankan perintah perangkat menggunakan SDM API.
Melihat pesan
Pesan peristiwa dapat dilihat di project Google Cloud Anda, di bagian Pub/Sub Subscriptions:
Buka Langganan Google Cloud Pub/Sub
- Klik ID Langganan yang Anda buat sebelumnya.
- Di layar Detail langganan, Anda akan melihat aktivitas untuk diagram Jumlah pesan yang belum dikonfirmasi. Hal ini menunjukkan bahwa pesan peristiwa telah diterima melalui langganan Anda. Jika Anda tidak melihat aktivitas apa pun, tunggu beberapa saat atau buat beberapa peristiwa lagi.
- Klik LIHAT PESAN untuk membuka panel Pesan.
- Klik TARIK untuk melihat pesan. Parameter ini harus sesuai dengan tindakan yang Anda gunakan untuk membuat peristiwa.
Pesan juga dapat dilihat di Cloud Shell dengan perintah pull
dasar:
gcloud pubsub subscriptions pull subscription-id
Untuk mengetahui informasi selengkapnya tentang jenis langganan, serta jenis peristiwa yang dikirim oleh SDM API dan cara menggunakannya, lihat Peristiwa.
Kelola pesan
Pesan harus dikonfirmasi dan dihapus secara rutin, agar langganan tetap bersih dan menghindari pengiriman pesan duplikat ke pelanggan lain. Semua pesan langganan dapat dihapus secara manual di bagian Langganan Pub/Sub:
Buka Langganan Google Cloud Pub/Sub
- Klik ID Langganan.
- Ada beberapa cara untuk mengonfirmasi dan menghapus:
- Klik LIHAT PESAN untuk membuka panel Pesan. Centang kotak Enable ack messages dan klik PULL untuk melihat dan mengonfirmasi semua pesan.
- Klik HAPUS PESAN untuk menghapus semua pesan yang ada dengan mengonfirmasi tanpa melihatnya. Klik PURGE untuk mengonfirmasi.
Pesan juga dapat dihapus di Cloud Shell menggunakan flag --auto-ack
dengan
perintah pull
dasar:
gcloud pubsub subscriptions pull subscription-id --auto-ack
Kelola langganan
Langganan dapat dikonfigurasi dengan berbagai cara, seperti yang dijelaskan dalam Menggunakan properti langganan.
Meskipun cara Anda mengelola langganan dan pesan terserah Anda, untuk aplikasi produksi, sebaiknya gunakan Akun layanan untuk autentikasi, bukan akun pengguna seperti yang telah Anda lakukan sejauh ini dalam panduan memulai cepat ini. Akun layanan digunakan oleh aplikasi atau virtual machine, bukan orang, dan memiliki kunci akun uniknya sendiri.
Untuk mengetahui informasi selengkapnya tentang autentikasi akun layanan dengan Device Access, lihat Peristiwa.