Etkinlikler eşzamansız olup Google Cloud Pub/Sub tarafından Projectbaşına tek bir konuda yönetilir. Etkinlikler, tüm cihazlar ve yapılar için güncellemeler sağlar. Erişim jetonu kullanıcı tarafından iptal edilmediği ve etkinlik mesajlarının süresi dolmadığı sürece etkinliklerin alınması garanti edilir.
Etkinlikler, SDM API'nin isteğe bağlı bir özelliğidir. Google Cloud projenizi kullanarak kolayca uygulanabilir ve doğrulanabilir.
Etkinlikleri etkinleştir
Etkinlikler Device Access Konsol'da etkinleştirilebilir. Henüz yapmadıysanız Konsol'da projenizi seçin.
Device Access Konsol'a gidin.
Etkinlikleri daha önce etkinleştirdiyseniz (ör. proje oluşturma sırasında), Etkinlikler için Pubsub konusunu etkinleştirin bölümündeki Pub/Sub konusu alanında, eski biçimde bir konu kimliği olarak adlandırılan bir değer zaten olmalıdır:
projects/sdm-prod/topics/enterprise-project-id
Bu konu biçimi Google tarafından barındırılır ve Google tarafından barındırılan Pub/Sub konusunu devre dışı bırakmadığınız sürece projenizde kalır. Daha sonra yeniden etkinleştirirseniz kendi kendine barındırılan Pub/Sub konusuna geçersiniz.
Kendi kendine barındırılan Pub/Sub konuları, geliştiricinin kendi Google Cloud projesinde oluşturulabilir veya değiştirilebilir. Geliştirici, Pub/Sub kullanımına ilişkin tüm maliyetlerden de sorumludur. Daha fazla bilgi için Pub/Sub fiyatlandırması başlıklı makaleyi inceleyin.
Pub/Sub konusunu oluşturun:
gcloud pubsub topics create {topic} --message-retention-duration=0sProjenizin konu kimliği için etkinlik verilerine erişmek ve bunları yayınlamak üzere gerekli SDM API izinlerini verin:
gcloud pubsub topics add-iam-policy-binding projects/{project}/topics/{topic} \
--member="group:sdm-publisher@googlegroups.com" \
--role="roles/pubsub.publisher"Yeni oluşturduğunuz konu kimliğinizin biçimi şu şekilde görünür:
projects/gcp-project-name/subscriptions/topic-id
Konu kimliğinizi not edin. Etkinlikleri etkinleştirme işlemini tamamlamak için bu kimliğe ihtiyacınız olacaktır. Daha fazla bilgi için Konu oluşturma başlıklı makaleyi inceleyin.
Etkinlikleri etkinleştirmek için:
- Etkinlikleri etkinleştir'i işaretleyin ve Proje Oluştur'u tıklayın.
- Pub/Sub konusu için simgesini tıklayın ve PubSub konusu içeren etkinlikleri etkinleştir'i seçin.
- Daha önce sağlanan veya oluşturulan Pub/Sub konu kimliğini girin.
Konu kimliğinizi kopyalayın. Etkinlik mesajlarının alınabilmesi için konuyla ilgili bir abonelik oluşturmanız gerekir.
Pull aboneliği oluşturma
Çekme aboneliğinde, abone, sıraya alınmış etkinlik mesajları için Pub/Sub sunucusuna istek gönderir. Bu, yetkili cihazlarınız için etkinliklerin oluşturulduğunu doğrulamanın hızlı ve kolay bir yoludur.
Google Cloud projeniz için Cloud Shell'i açın:
Cloud Shell isteminde, istediğiniz subscription-id ve benzersiz konu kimliğinizi kullanarak konunuz için bir çekme aboneliği oluşturmak üzere aşağıdaki komutu çalıştırın:
gcloud pubsub subscriptions create subscription-id --topic=projects/gcp-project-name/subscriptions/topic-id
Created subscription [projects/gcp-project-name/subscriptions/subscription-id].Etkinlik başlatma
Pub/Sub aboneliği oluşturulduktan sonra etkinlikleri ilk kez başlatmak için cihazlarınızı tek seferlik tetikleyici olarak listelemek üzere bir çağrı yapın:
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'Bu API çağrısından sonra tüm yapılar ve cihazlarla ilgili etkinlikler yayınlanır.
Etkinlik oluşturma
Tüm özellik alanı değişiklikleri için etkinlikler oluşturulur. Bu değişikliklerden bazıları otomatik, bazıları ise manueldir.
Örneğin, Nest Thermostat'ınızın yakınındaki ortam sıcaklığı değişirseTemperature özelliği için yeni bir ambientTemperatureCelsius değeriyle otomatik olarak etkinlik gönderilir.
Manuel olarak oluşturmak için aşağıdakilerden birini yapın:
- Cihazınızın durumunu fiziksel olarak değiştirme (ör. Nest termostatınızın modunu değiştirme)
- Google Nest Cam Indoor'da hareket, kişi veya ses gibi bir etkinliği tetikleme
- SDM API'yi kullanarak cihaz komutu yürütün.
Mesajları göster
Etkinlik iletileri, Google Cloud projenizdeki Pub/Sub Abonelikleri bölümünde görüntülenebilir:
Google Cloud Pub/Sub Abonelikleri'ne gitme
- Daha önce oluşturduğunuz abonelik kimliğini tıklayın.
- Abonelik ayrıntıları ekranında, Onaylanmamış mesaj sayısı grafiğiyle ilgili etkinlikleri görmeniz gerekir. Bu, aboneliğiniz için etkinlik mesajlarının geldiğini gösterir. Herhangi bir etkinlik görmüyorsanız biraz bekleyin veya birkaç etkinlik daha oluşturun.
- MESAJLARI GÖSTER'i tıklayarak Mesajlar panelini açın.
- İletileri görüntülemek için PULL'u tıklayın. Etkinlik oluşturmak için kullandığınız işlemlerle eşleşmelidir.
Mesajlar, Cloud Shell'de temel bir pull komutuyla da görüntülenebilir:
gcloud pubsub subscriptions pull subscription-idAbonelik türleri ve SDM API tarafından gönderilen etkinlik türleri ile bunların nasıl kullanılacağı hakkında daha fazla bilgi için Etkinlikler başlıklı makaleyi inceleyin.
Mesajları yönetme
Aboneliğin temiz kalması ve diğer abonelere yinelenen mesaj teslimini önlemek için mesajlar düzenli olarak onaylanmalı ve silinmelidir. Tüm abonelik mesajları, Pub/Sub Abonelikleri bölümünde manuel olarak silinebilir:
Google Cloud Pub/Sub Abonelikleri'ne gitme
- Abonelik kimliğini tıklayın.
- Onaylama ve temizleme işlemini birkaç şekilde yapabilirsiniz:
- İLETİLERİ GÖRÜNTÜLE'yi tıklayarak İletiler panelini açın. Onay iletilerini etkinleştir onay kutusunu işaretleyin ve tüm iletileri görüntüleyip onaylamak için GETİR'i tıklayın.
- Mevcut tüm mesajları görüntülemeden onaylayarak tamamen silmek için MESAJLARI'ı tıklayın. Onaylamak için TAMAMEN SİL'i tıklayın.
İletiler, Cloud Shell'de temel bir pull komutuyla --auto-ack işareti kullanılarak da temizlenebilir:
gcloud pubsub subscriptions pull subscription-id --auto-ackAbonelikleri yönet
Abonelikler, Abonelik özelliklerini kullanma başlıklı makalede açıklandığı gibi çeşitli şekillerde yapılandırılabilir.
Abonelikleri ve mesajları nasıl yönetmek istediğiniz size bağlı olsa da bir üretim uygulamasında kimlik doğrulama için bu hızlı başlangıç kılavuzunda şimdiye kadar kullandığınız gibi bir kullanıcı hesabı yerine hizmet hesaplarını kullanmanızı öneririz. Hizmet hesabı, bir kişi tarafından değil, bir uygulama veya sanal makine tarafından kullanılır ve kendine ait benzersiz bir hesap anahtarı vardır.
Device Accessile hizmet hesabı kimlik doğrulaması hakkında daha fazla bilgi için Etkinlikler bölümüne bakın.