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 ve IoT olaylarını iş çözümlerinizle kolayca tümleştirmenize yardımcı olur. 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 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
Mantıksal Uygulama, 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 bir veritabanı oluşturmadıysanız, kılavuz için bkz. 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 olarak bir abonelik oluşturun .
Azure aboneliğinizin altında bir IoT hub'ı. CLI veya Azure portal ile bir tane oluşturun.
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+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 grup 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çeneğini belirlerseniz 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 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 desenler için ş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 bir HTTP isteği alındığında isteğini seçin.
Şema oluşturmak için örnek yük kullanma öğ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/DEMO5CDD-8DAB-4CF4-9B2F-C22E8A755472/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şulu geçtikten 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. Bu 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 olarak veya olarak değiştirin.
Değer seçin kutusunun içini seçtiğinizde Dinamik içerik (seçilebilen alanlar) öğesini 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österilir. 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.
Bağlantıyı kesme olaylarını aramamız dışında, bu ikinci satır ilk satıra benzer.
Satır değerleri için eventType, eşittir ve Microsoft.Devices.DeviceDisconnected kullanın.
True ise 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 parametresi listesinden seçim yapın
Current item
Mantıksal uygulamanızı kaydedin.
HTTP URL'sini kopyalama
Logic Apps Tasarım Aracı 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ç noktayı 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ızı denetleyin. Aksi takdirde 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.
cihazı IoT Hub
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ı dizeleri 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ırdaki yer tutucuyu önceki bölümün sonunda kaydettiğiniz Azure IoT Hub cihaz bağlantı dizenizle 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 kontrol etmek, sorun giderme gerekiyorsa mantıksal uygulamanızın durumunu öğrenmenizi sağlar. Tetikleyicinizin çalıştırıldığından 15-30 saniyelik bir gecikme bekleyin. Mantıksal uygulamanızın sorunlarını gidermeniz gerekiyorsa bu Sorun giderme makalesini görüntüleyin.
Bir Cihaz Bağlantısı Kesildi olayını tetikleyen simülatörü durdurmak için Durdur'u seçin. Bu olay, Mantıksal Uygulamaya Genel Bakış sayfasında, bağlantı olayının orada günlüğe kaydedildiği gibi oturum açar.
Artık 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 kullanma
Azure portal kullanmak yerine Azure CLI kullanarak IoT Hub adımlarını gerçekleştirebilirsiniz. Ayrıntılar için bkz. Olay aboneliği oluşturma ve IoT cihazı oluşturma için Azure CLI sayfaları.
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 Cosmos DB hesabını Azure portal 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 olaylara tepki verme hakkında daha fazla bilgi edinin
Event Grid ile başka neler yapabileceğinizi öğrenin
IoT Hub cihaz bağlantısını izlemek, tanılamak ve sorunlarını gidermek için Event Grid ve Azure İzleyici'yi kullanmayı öğrenin