Azure Cosmos DB'yi kullanarak Azure IoT Hub cihaz bağlantısı olaylarını sıralama
Azure Event Grid , olay tabanlı uygulamalar oluşturmanıza yardımcı olur ve IoT olaylarını iş çözümlerinizle kolayca tümleştirir. Bu makalede, bir cihazın bağlantı ve bağlantı kesme olaylarını toplamak ve depolamak için Cosmos DB, Logic App, IoT Hub Olayları ve sanal Raspberry Pi kullanarak bir kurulumda size yol gösterilir.
Cihazınız çalıştığı andan itibaren bir işlem sırası etkinleştirilir:
IoT hub cihaz anahtarınızı kullanan Pi cihazı başlatılır ve ardından durdurulur
IoT Hub olayı cihaz etkinliğini yakalar ve ardından Mantıksal Uygulamanıza bir HTTP isteği gönderir
Mantıksal Uygulama, http isteğini ayarladığınız bir koşula göre işler
Logic App, Cosmos DB'de bağlantı veya bağlantı kesme olaylarını yeni bir belgede günlüğe kaydeder
Önkoşullar
NoSQL için etkin bir Azure Cosmos DB hesabı. Henüz oluşturmadıysanız bkz . İzlenecek yol için veritabanı hesabı oluşturma.
Veritabanınızdaki bir koleksiyon. İzlenecek yol için bkz . Koleksiyon ekleme. Koleksiyonunuzu oluştururken bölüm anahtarı için kullanın
/id
.Azure aboneliği. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir abonelik oluşturun.
Azure aboneliğinizde bir IoT hub'ı. Henüz bir hub'ına sahip değilseniz IoT hub'ı oluşturma makalesindeki adımları izleyebilirsiniz.
Mantıksal uygulama oluşturma
Şimdi bir mantıksal uygulama oluşturalım ve sanal makinenizin kaynak grubunu izleyen bir Event Grid tetikleyicisi ekleyelim.
Mantıksal uygulama kaynağı oluşturma
Azure portalında +Kaynak oluştur'u, Tümleştirme'yi ve ardından Mantıksal Uygulama'yı seçin.
Aşağıdakileri içeren yeni bir Mantıksal Uygulama oluşturmak için formu doldurun:
Aboneliğiniz
Kaynak grubunuz (veya yeni bir tane oluşturun)
Aboneliğinizde benzersiz bir Mantıksal Uygulama adı
IoT hub'ınızın bölgesi
Log Analytics'i etkinleştirmek için Hayır
Tüketim plan türü
Not
Tüketim planı türü, kullanıcı arabiriminde Mantıksal uygulama tasarımcısını etkinleştiren seçenektir. Standart 'ı (varsayılan) seçerseniz, Mantıksal uygulama tasarımcısının kullanılabilir duruma gelmesi için yeni bir iş akışı oluşturmanız gerekir.
Yapılandırmanızı gözden geçirmek için Gözden Geçir + Oluştur'u ve ardından mantıksal uygulamayı oluşturmak için Oluştur'u seçin.
Mantıksal uygulamanız için bir Azure kaynağı oluşturdunuz. Azure mantıksal uygulamanızı dağıtdıktan sonra Kaynağa git'i seçin. Mantıksal uygulama tasarımcısı , daha hızlı başlayabilmeniz için yaygın desenlere yönelik şablonları gösterir.
Mantıksal uygulama tasarımcısında Şablonlar bölümünü görene kadar kaydırın, ardından mantıksal uygulamanızı sıfırdan oluşturabilmek için Boş Mantıksal Uygulama'yı seçin.
Tetikleyici seçme
Tetikleyici, mantıksal uygulamanızı başlatan belirli bir olaydır. Bu öğreticide, iş akışını başlatan tetikleyici HTTP üzerinden bir istek alır.
Bağlayıcılar ve tetikleyiciler arama çubuğuna HTTP yazın ve Enter tuşuna basın.
Tetikleyici olarak http isteği alındığında isteğini seçin.
Şema oluşturmak için örnek yük kullan öğesini seçin.
Aşağıdaki örnek JSON kodunu metin kutusuna yapıştırın ve bitti'yi seçin.
Bu JSON yalnızca şablon olarak kullanıldığından, tam değerler önemli değildir.
[{ "id": "fbfd8ee1-cf78-74c6-dbcf-e1c58638ccbd", "topic": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/EGTESTRG/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/MYIOTHUB", "subject": "devices/Demo-Device-1", "eventType": "Microsoft.Devices.DeviceConnected", "eventTime": "2018-07-03T23:20:11.6921933+00:00", "data": { "deviceConnectionStateEventInfo": { "sequenceNumber": "000000000000000001D4132452F67CE200000002000000000000000000000001" }, "hubName": "MYIOTHUB", "deviceId": "48e44e11-1437-4907-83b1-4a8d7e89859e", "moduleId": "" }, "dataVersion": "1", "metadataVersion": "1" }]
Koşul oluşturma
Koşullar, belirli bir koşul geçirildikten sonra belirli eylemlerin çalıştırılmasına yardımcı olur. Bu makalede koşul, eventType'ın cihaza bağlı mı yoksa cihazın bağlantısı kesilmiş mi olduğunu denetlemektir. EventType true olduğunda yürütülen eylem, Azure Cosmos DB'de bir belgenin oluşturulmasıdır. Bu koşul Mantıksal uygulama tasarımcısında oluşturulur.
+ Yeni adım'ı ve ardından Yerleşik sekmesini seçin, ardından Koşul adlı denetimi bulup seçin.
Sizin durumunuzda, bağlantı olaylarını veya bağlantı kesme olaylarını tek bir ayrıştırma içinde yakalamak istediğimizden Ve'i Veya olarak değiştirin.
Değer seçin kutusunun içinde seçim yapın; Dinamik içeriği ( seçilebilen alanlar) gösteren bir açılır pencere görüntülenir.
eventType'ı seçin. Açılan pencere kapatılır ve Gövde'nin Önceki adımlardan bir çıkış seçin bölümüne otomatik olarak yerleştirildiği görürsünüz. Koşullu deyiminizi yeniden açmak için Koşul'u seçin.
değerini değere eşit olarak tutun.
Bu satırın son değeri olarak Microsoft.Devices.DeviceConnected yazın.
Başka bir satır eklemek için + Ekle'yi seçin.
Bu ikinci satır ilk satıra benzer, ancak bağlantı kesme olaylarını ararız.
Satır değerleri için eventType, eşittir ve Microsoft.Devices.DeviceDisconnected kullanın.
Doğruysa iletişim kutusunda Eylem ekle'ye tıklayın.
Cosmos DB'yi arayın ve Azure Cosmos DB — Belge oluşturma veya güncelleştirme (V3) seçeneğini belirleyin
Belge oluştur veya güncelleştir (V3) panelini görürsünüz. Alanlar için şu değerleri girin:
Azure Cosmos DB hesap adı: {Hesap adınızı ekleyin}
Veritabanı Kimliği: ToDoList
Koleksiyon Kimliği: Öğeler
Belge: Dinamik içerik parametre listesinden seçim yapma
Current item
Mantıksal uygulamanızı kaydedin.
HTTP URL'sini kopyalama
Logic Apps Tasarımcısı'ndan ayrılmadan önce mantıksal uygulamanızın bir tetikleyici için dinlediği URL'yi kopyalayın. Bu URL'yi, Event Grid'i yapılandırmak için kullanırsınız.
HTTP isteği alındığında tetikleyici yapılandırma kutusunu seçerek genişletin.
Yanındaki kopyala düğmesini seçerek HTTP POST URL değerini kopyalayın.
Sonraki bölümde kullanabilmek için bu URL'yi kaydedin.
IoT Hub olayları için aboneliği yapılandırma
Bu bölümde, IoT Hub'ınızı gerçekleşen olayları yayımlamak için yapılandıracaksınız.
Azure portalında IoT Hub'ınıza gidin.
Olaylar'ı seçin.
+ Olay aboneliği'ne tıklayın.
Olay Aboneliği Ayrıntılarını Doldurun: Açıklayıcı bir Ad sağlayın ve Olay Şeması olarak Event Grid Şeması'nı seçin.
IoT hub kaynağınız için bir Sistem Konusu Adı oluşturun.
Olay Türleri alanlarını doldurun. Açılan listede, menüden yalnızca Cihaz Bağlı ve Cihaz Bağlantısı Kesildi'yi seçin. Listeyi kapatmak ve seçimlerinizi kaydetmek için ekranda başka bir yere tıklayın.
Uç Nokta Ayrıntıları için Uç Nokta Türü'nü Web Kancası olarak seçin ve uç nokta seç'e tıklayın ve mantıksal uygulamanızdan kopyaladığınız URL'yi yapıştırın ve seçimi onaylayın.
Form şimdi aşağıdaki örneğe benzer görünmelidir:
Olay aboneliğini kaydetmek için Oluştur’u seçin.
Önemli
Cihazınızı çalıştırmadan önce etkinliğinizin işlemesi için birkaç dakika bekleyin. Azure hizmetleri her oluşturulduğunda veya değiştirildiğinde işlem hattınızda bir sonraki adımın çok erken başlatılması gereksiz hatalara neden olabilir. Örneğin, IoT hub'ınız etkin durumda değilse olayları almaya hazır olmaz. IoT hub'ınızın etkin durumda olup olmadığını görmek için IoT hub'ına Genel Bakış sayfanıza bakın. Değilse, sayfanın üst kısmında bir uyarı görürsünüz.
Cihazı çalıştırma ve olayları gözlemleme
Olay aboneliğiniz ayarlandıktan sonra bir cihaz bağlayarak test edelim.
IoT Hub'a cihaz kaydetme
IoT hub'ınızdan Cihazlar'ı seçin.
Bölmenin üst kısmındaki + Cihaz Ekle'yi seçin.
Cihaz kimliği için,
Demo-Device-1
girin.Kaydet'i seçin.
Cihaza yeniden tıklayın; şimdi bağlantı dizesi ve anahtarlar doldurulur. Birincil Bağlantı Dizesini kopyalayıp daha sonra kullanmak üzere kaydedin.
Raspberry Pi simülatörünü başlatma
Cihaz bağlantısını simüle etmek için Raspberry Pi web simülatörünü kullanalım.
Raspberry Pi simülatörünü başlatma
Raspberry Pi web simülatöründe örnek bir uygulama çalıştırma
Bu örnek uygulama, cihaza bağlı bir olayı tetikler.
Kodlama alanında, 15. Satır'daki yer tutucuyu önceki bölümün sonunda kaydettiğiniz Azure IoT Hub cihazınız bağlantı dizesi değiştirin.
Çalıştır'ı seçerek uygulamayı çalıştırın.
Algılayıcı verilerini ve IoT hub'ınıza gönderilen iletileri gösteren aşağıdaki çıkışa benzer bir şey görürsünüz.
Mantığınızın tetiklenip tetiklenmediğini denetlemek için Mantıksal Uygulamaya Genel Bakış sayfanızı kontrol edebilirsiniz. Başarılı veya Başarısız olarak gösterilir. Burada denetim yaparak sorun giderme gerekiyorsa mantıksal uygulama durumunuzu öğrenebilirsiniz. Tetikleyicinizin çalışması için 15-30 saniyelik bir gecikme bekleyin. Mantıksal uygulamanızın sorunlarını gidermeniz gerekiyorsa bu Hata giderme makalesini görüntüleyin.
Cihaz Bağlantısı Kesildi olayını tetikleyen simülatörü durdurmak için Durdur'u seçin. Bu olay, bağlantı olayının orada günlüğe kaydedildiği gibi Mantıksal Uygulamaya Genel Bakış sayfasında da oturum açar.
Şimdi ioT hub'ınıza giden cihazınızın bağlantı ve bağlantı kesme olaylarını toplamak için örnek bir uygulama çalıştırmış oldunuz.
Azure Cosmos DB'de olayları gözlemleme
Yürütülen mantıksal uygulamanın sonuçlarını Cosmos DB belgenizde görebilirsiniz. Sayfayı yenilediğinizde belge Items koleksiyonunuzda görünür. Her bağlantı durumu olayı, benzersiz id
bir atanan yeni bir belge oluşturur. Aşağıdaki görüntüde, cihaz başlatıldığında (bağlı) oluşturulan belge gösterilmektedir. Bağlı olay türü JSON çıkışında listelenir.
Azure CLI'yi kullanma
Azure portalını kullanmak yerine Azure CLI kullanarak IoT Hub adımlarını gerçekleştirebilirsiniz. Ayrıntılar için olay aboneliği oluşturma ve IoT cihazı oluşturma için Azure CLI sayfalarına bakın.
Kaynakları temizleme
Bu öğreticide Azure aboneliğinize ücret uygulanmasına neden olan kaynaklar kullanılmıştır. Öğreticiyi denemeyi ve sonuçlarınızı test etme işlemini tamamladığınızda, saklamak istemediğiniz kaynakları devre dışı bırakın veya silin.
Mantıksal uygulama
Mantıksal uygulamanızda yapılan çalışmayı kaybetmek istemiyorsanız, bunu silmek yerine devre dışı bırakın.
Mantıksal uygulamanıza gidin.
Genel Bakış dikey penceresinde Sil veya Devre Dışı Bırak'ı seçin.
Her aboneliğin tek bir ücretsiz IoT Hub'ı olabilir. Bu öğretici için ücretsiz bir hub oluşturduysanız, ücretleri önlemek için bunu silmeniz gerekmez.
IoT hub'ı veya Event Grid
IoT Hub'ınıza gidin.
Genel Bakış dikey penceresinde Sil'i seçin.
IoT Hub'ınızı korusanız bile, oluşturduğunuz olay aboneliğini silmek isteyebilirsiniz. IoT Hub'ınızda Event Grid'i seçin.
Kaldırmak istediğiniz olay aboneliğini ve ardından Sil'i seçin.
Cosmos DB
Azure portalından bir Azure Cosmos DB hesabını kaldırmak için kaynağınıza gidin ve üst menü çubuğundan Hesabı sil'i seçin. Azure Cosmos DB hesabını silmeye yönelik ayrıntılı yönergelere bakın.
Sonraki adımlar
Eylemleri tetikleme amacıyla Event Grid kullanarak IoT Hub olaylarına tepki verme hakkında daha fazla bilgi edinin
Event Grid ile başka neler yapabileceğinizi öğrenin
IoT Hub'a cihaz bağlantısını izlemek, tanılamak ve sorunlarını gidermek için Event Grid ve Azure İzleyici'yi kullanmayı öğrenin