Etkinliklere Abone Olma

Etkinlikler eşzamansız olup Google Cloud Pub/Sub tarafından yönetilir ve her Projectiçin tek bir konu kullanılır. 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 değer (Konu Kimliği olarak adlandırılır) bulunuyor 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 bünyesinde 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=0s

Projenizin 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 olacaktı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:

  1. Etkinlikleri etkinleştir'i işaretleyin ve Proje Oluştur'u tıklayın.
  2. Pub/Sub konusu için simgesini tıklayın ve Pub/Sub konusu içeren etkinlikleri etkinleştir'i seçin.
  3. 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 konu aboneliği oluştururken bu kimliğe ihtiyacınız olacaktır.

Pull aboneliği oluşturma

Çekme aboneliğinde, abone, sıraya alınmış etkinlik mesajları için Pub/Sub sunucusuna istek başlatır. Bu yöntem, yetkili cihazlarınız için etkinlik oluşturulduğunu doğrulamanın hızlı ve kolay bir yoludur.

Google Cloud projeniz için Cloud Shell'i açın:

Google Cloud Shell'e gitme

Cloud Shell isteminde, istediğiniz subscription-id ve benzersiz konu kimliğinizi kullanarak konunuzda çekme aboneliği oluşturmak için 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].

Başlatma etkinlikleri

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 bir etkinlik otomatik olarak yeni bir ambientTemperatureCelsius değeriyle gönderilir.

Manuel olarak oluşturmak için:

  1. Cihazınızın durumunu fiziksel olarak değiştirme (ör. Nest termostatınızın modunu değiştirme)
  2. Google Nest Cam Indoor'da hareket, kişi veya ses gibi bir etkinliği tetikleme
  3. SDM API'yi kullanarak cihaz komutu yürütün.

Mesajları göster

Etkinlik mesajları, Google Cloud projenizin Pub/Sub Abonelikleri bölümünde görüntülenebilir:

Google Cloud Pub/Sub Abonelikleri'ne gitme

  1. Daha önce oluşturduğunuz abonelik kimliğini tıklayın.
  2. Abonelik ayrıntıları ekranında, Onaylanmamış ileti sayısı grafiğiyle ilgili etkinlikleri görmeniz gerekir. Bu, aboneliğiniz için etkinlik mesajlarının alındığını gösterir. Herhangi bir etkinlik görmüyorsanız biraz bekleyin veya birkaç etkinlik daha oluşturun.
  3. MESAJLARI GÖSTER'i tıklayarak Mesajlar panelini açın.
  4. İ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-id

Abonelik 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 iletilerin iki kez gönderilmemesi için iletiler düzenli olarak onaylanmalı ve temizlenmelidir. Tüm abonelik mesajları, Pub/Sub Abonelikleri bölümünde manuel olarak temizlenebilir:

Google Cloud Pub/Sub Abonelikleri'ne gitme

  1. Abonelik kimliğini tıklayın.
  2. Onaylama ve temizleme işlemini birkaç şekilde yapabilirsiniz:
    1. MESAJLARI GÖSTER'i tıklayarak Mesajlar panelini açın. Enable ack messages (Onay mesajlarını etkinleştir) onay kutusunu işaretleyin ve tüm mesajları görüntüleyip onaylamak için PULL'u (ÇEK) tıklayın.
    2. Mevcut tüm mesajları görüntülemeden onaylayarak tamamen silmek için MESAJLARI TAMAMEN SİL'i tıklayın. Onaylamak için PURGE'yi 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-ack

Abonelikleri 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.