Aracılığıyla paylaş


Eğitim: IoT Hub ileti yönlendirmesini kullanarak cihaz verilerini Azure Depolama'ya gönderme

IoT cihazlarınızdan blob depolama, Service Bus Kuyrukları, Service Bus Konuları ve Event Hubs gibi Azure hizmetlerine telemetri verileri göndermek için Azure IoT Hub'da ileti yönlendirmeyi kullanın. Her IoT hub'ında Event Hubs ile uyumlu varsayılan bir yerleşik uç nokta vardır. Ayrıca yönlendirme sorguları tanımlayarak özel uç noktalar oluşturabilir ve iletileri diğer Azure hizmetlerine yönlendirebilirsiniz. IoT hub'ına ulaşan her ileti, yönlendirme sorguları eşleşen tüm uç noktalara yönlendirilir. İleti tanımlı yönlendirme sorgularından hiçbirine uymuyorsa, varsayılan uç noktaya yönlendirilir.

Bu öğreticide, aşağıdaki görevleri gerçekleştireceksiniz:

  • Bir IoT hub'ı oluşturun ve bu hub'a cihaz iletileri gönderin.
  • Depolama hesabı oluşturma.
  • Depolama hesabı için özel bir uç nokta oluşturun ve iletileri IoT hub'ından bu hesaba yönlendirin.
  • Depolama hesabı blobunda cihaz iletilerini görüntüleyin.

Önkoşullar

  • Azure aboneliği. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

  • Azure aboneliğinizde bir IoT merkezi. Henüz bir IoT hub'ına sahip değilseniz IoT hub'ı oluşturma makalesindeki adımları izleyebilirsiniz.

  • Bu öğreticide .NET için Microsoft Azure IoT SDK'sından alınan örnek kod kullanılır.

    • SDK depoyu geliştirme makinenize indirin veya kopyalayın.
    • Geliştirme makinenizde .NET Core 3.0.0 veya üzerini kullanın. Komutunu çalıştırarak dotnet --version sürümünüzü denetleyin ve gerekirse .NET'i indirin.
  • Güvenlik duvarınızda 8883 numaralı bağlantı noktasının açık olduğundan emin olun. Bu öğreticideki örnek, 8883 numaralı bağlantı noktası üzerinden iletişim kuran MQTT protokollerini kullanır. Bu bağlantı noktası bazı kurumsal ve eğitim ağı ortamlarında engellenebilir. Bu sorunu çözmenin daha fazla bilgi ve yolları için bkz. IoT Hub'a bağlanma.

  • İsteğe bağlı olarak Azure IoT Gezgini'ni (önizleme) yükleyin. Bu araç, IoT hub'ınıza ulaşan iletileri gözlemlemenize yardımcı olur. Bu makalede Azure IoT Gezgini kullanılır.

Azure portalı için başka önkoşul yoktur.

Cihazı kaydetme ve IoT Hub'a ileti gönderme

IoT hub'ınıza yeni bir cihaz kaydedin.

Önemli

Bu makale, simetrik anahtar kimlik doğrulaması olarak da adlandırılan paylaşılan erişim imzasını kullanarak bir cihazı bağlama adımlarını içerir. Bu kimlik doğrulama yöntemi test ve değerlendirme için uygundur, ancak X.509 sertifikalarını kullanarak bir cihazın kimliğini doğrulamak daha güvenli bir yaklaşımdır. Daha fazla bilgi edinmek için bkz . IoT çözümleri > için en iyi güvenlik yöntemleri Bağlantı güvenliği.

  1. Azure portalında oturum açın ve IoT hub'ınıza gidin.

  2. Menünün Cihaz yönetimi bölümünden Cihazlar'ı seçin.

  3. Cihaz ekle'yi seçin.

    Azure portalında yeni cihaz eklemeyi gösteren ekran görüntüsü.

  4. Bir cihaz kimliği girin ve Kaydet'i seçin.

  5. Yeni cihaz artık cihaz listesinde olmalıdır. Değilse sayfayı yenileyin. Cihaz ayrıntıları sayfasını açmak için cihaz kimliğini seçin.

  6. Cihaz anahtarlarından birini kopyalayın ve kaydedin. Bu değeri, sanal cihaz telemetri iletileri oluşturan örnek kodu yapılandırmak için kullanırsınız.

    Bir IoT cihazının birincil anahtarının Azure portalındaki cihaz ayrıntıları sayfasından nasıl kopyalandığını gösteren ekran görüntüsü.

Artık bir cihaz kimliğiniz ve anahtarınız olduğuna göre örnek kodu kullanarak IoT Hub'a cihaz telemetri iletileri göndermeye başlayın.

Tip

Bu öğretici için Azure CLI adımlarını izliyorsanız, örnek kodu ayrı bir oturumda çalıştırın. Bu şekilde, CLI adımlarının geri kalanını izlerken örnek kodun çalışmaya devam etmesi için izin vekleyebilirsiniz.

  1. Önkoşulların bir parçası olarak yapmadıysanız github'dan .NET deposu için Microsoft Azure IoT SDK'sını indirin veya kopyalayın.

  2. SDK'yı indirdiğiniz veya kopyaladığınız klasörden klasöre azure-iot-sdk-csharp\iothub\device\samples\how to guides\HubRoutingSample gidin.

  3. .NET için Microsoft Azure IoT SDK'sını HubRoutingSample.csproj ve dosyada belirtildiği gibi gerekli bağımlılıkları yükleyin:

    dotnet restore
    
  4. Seçtiğiniz bir düzenleyicide Parameters.cs dosyayı açın. Bu dosya, örnek tarafından desteklenen parametreleri gösterir. Bu makalede örneği çalıştırırken yalnızca PrimaryConnectionString parametresi kullanılır. Bu dosyadaki kodu gözden geçirin. Değişiklik gerekmez.

  5. Aşağıdaki komutu kullanarak örnek kodu derleyin ve çalıştırın:

    IoT hub'ınızdaki cihazınızın birincil bağlantı dizesiyle <myDevicePrimaryConnectionString> değerini değiştirin.

    dotnet run --PrimaryConnectionString <myDevicePrimaryConnectionString>
    
  6. IoT Hub'a gönderilirken çıktıya yazdırılan iletileri görmeye başlamanız gerekir. Eğitim sırasında bu programı çalışır durumda bırakın.

IoT Explorer'ı iletileri görüntülemek için yapılandırma

IoT Gezgini'ni IoT hub'ınıza bağlanacak ve yerleşik uç noktaya ulaşan iletileri okuyacak şekilde yapılandırın.

İlk olarak IoT hub'ınızın bağlantı dizesi alın.

  1. Azure portalında IoT Hub'ınıza gidin.

  2. Menünün Güvenlik ayarları bölümünde Paylaşılan erişim ilkeleri'ni seçin.

  3. iothubowner ilkesini seçin.

    Azure portalında iothubowner paylaşılan erişim ilkesinin nasıl seçildiğini gösteren ekran görüntüsü.

  4. Birincil bağlantı dizesi kopyalayın.

    Azure portalında ioT hub'ının iothubowner ilkesi için birincil bağlantı dizesinin nasıl kopyalandığını gösteren ekran görüntüsü.

Şimdi bu bağlantı dizesi kullanarak IoT hub'ınız için IoT Gezgini'ni yapılandırın.

  1. Geliştirme makinenizde IoT Explorer'ı açın.

  2. Görüntüleniyorsa IoT Hub bağlantı dizesi aracılığıyla bağlan'ı seçin.

    Azure IoT Explorer'ın Hoş Geldiniz bölmesini gösteren ve IoT Hub bağlantı dizesi aracılığıyla bağlanma seçeneğinin vurgulandığı ekran görüntüsü.

  3. Bağlantı ekle'yi seçin.

    Azure IoT Gezgini'nde IoT hub bağlantısı eklemeyi gösteren ekran görüntüsü.

  4. Hub bağlantı dizesini metin kutusuna yapıştırın.

  5. Kaydet'i seçin.

  6. IoT hub'ınıza bağlandıktan sonra cihazların listesini görmeniz gerekir. Bu eğitim için oluşturduğunuz cihaz kimliğini seçin.

  7. Telemetri'yi seçin.

  8. Cihazınız çalışmaya devam ettiyse Başlat'ı seçin. Cihazınız çalışmıyorsa telemetriyi göremezsiniz.

    Azure IoT Gezgini'ndeki cihazlar için Telemetri bölmesini gösteren ekran görüntüsü, cihaz telemetrisini izlemeye nasıl başlayacağınızı vurgular.

  9. Cihazınızdan gelen ve en son iletilerin en üstte görüntülendiği iletileri görmeniz gerekir.

    Yerleşik uç noktada IoT hub'ına gelen iletileri gösteren ekran görüntüsü.

    Normal, depolama ve kritik olmak üzere üç farklı ileti türü gördüğünüzden emin olmak için gelen iletileri birkaç dakika izleyin. Üç ileti türünü de gördükten sonra cihazınızı durdurabilirsiniz.

Bu iletilerin tümü IoT hub'ınız için varsayılan yerleşik uç noktaya geliyor. Sonraki bölümlerde özel bir uç nokta oluşturacak ve bu iletilerin bazılarını ileti özelliklerine göre depolama alanına yönlendireceğiz. IoT Gezgini'nde bu iletilerin görüntülenmemesinin sebebi, iletilerin yalnızca IoT hub'ında başka hiçbir yolla eşleşmediklerinde yerleşik uç noktaya gitmesidir.

İleti yönlendirmeyi ayarlama

simülasyon cihazı tarafından iletiye eklenen özelliklere göre iletileri farklı kaynaklara yönlendireceksiniz. Özel yönlendirilmeyen iletiler varsayılan uç noktaya (iletiler/olaylar) gönderilir.

Bu öğreticinin örnek uygulaması, IoT hub'ına gönderdiği her iletiye bir düzey özelliği atar. Her iletiye rastgele bir normal, depolama veya kritik düzeyi atanır.

İlk adım, verilerin yönlendirildiği uç noktayı ayarlamaktır. İkinci adım, bu uç noktayı kullanan ileti yolunu ayarlamaktır. Yönlendirmeyi ayarladıktan sonra portalda uç noktaları ve ileti yollarını görüntüleyebilirsiniz.

Depolama hesabı oluşturma

Bu hesabın içinde bir Azure Depolama hesabı ve bu hesaba yönlendirilen cihaz iletilerini barındıran bir kapsayıcı oluşturun.

  1. Azure portalında Depolama hesaplarını arayın.

  2. Oluştur'u belirleyin.

  3. Depolama hesabınız için aşağıdaki değerleri sağlayın:

    Parameter Value
    Abonelik IoT hub'ınızı içeren aboneliği seçin.
    Kaynak Grubu IoT hub'ınızı içeren kaynak grubunu seçin.
    Depolama hesabı adı Depolama hesabınız için genel olarak benzersiz bir ad sağlayın.
    Performance Varsayılan Standart değeri kabul edin.

    Azure portalında depolama hesabı oluşturmayı gösteren ekran görüntüsü.

  4. Gözden Geçir + oluştur'u seçerek diğer tüm varsayılan değerleri kabul edebilirsiniz.

  5. Doğrulama tamamlandıktan sonra Oluştur'u seçin.

  6. Dağıtım tamamlandıktan sonra, Kaynağa git’i seçin.

  7. Depolama hesabı menüsünde Veri depolama bölümünde Kapsayıcılar'ı seçin.

  8. Yeni bir kapsayıcı oluşturmak için + Kapsayıcı'ya tıklayın.

    Azure portalında depolama hesabı için kapsayıcı oluşturmayı gösteren ekran görüntüsü.

  9. Kapsayıcınız için bir ad girin ve Oluştur'u seçin.

Depolama hesabına yönlendirme

Şimdi depolama hesabı için yönlendirmeyi ayarlayın. Bu bölümde, oluşturduğunuz depolama hesabına işaret eden yeni bir uç nokta tanımlarsınız. Ardından, level özelliği depolama olarak ayarlanmış iletiler için bir filtreleme yolu oluşturur ve bu iletileri depolama uç noktasına yönlendirirsiniz.

Note

Veriler varsayılan olan Apache Avro biçiminde veya JSON biçiminde blob depolamaya yazılabilir.

Kodlama biçimi yalnızca blob depolama uç noktası yapılandırıldığında ayarlanabilir. Daha önce yapılandırılmış bir uç nokta için biçim değiştirilemez. JSON kodlamasını kullanırken, ileti sistemi özelliklerinde contentType değerini JSON ve contentEncoding değerini UTF-8 olarak ayarlamanız gerekir.

Blob depolama uç noktasını kullanma hakkında daha ayrıntılı bilgi için bkz. Yönlendirme uç noktası olarak Azure Depolama.

Önemli

Bu makale, paylaşılan erişim imzası kullanarak hizmete bağlanma adımlarını içerir. Bu kimlik doğrulama yöntemi test ve değerlendirme için uygundur, ancak Microsoft Entra ID veya yönetilen kimliklerle bir hizmette kimlik doğrulaması yapmak daha güvenli bir yaklaşımdır. Daha fazla bilgi edinmek için bkz . IoT çözümleri > için en iyi güvenlik uygulamaları Bulut güvenliği.

  1. Azure portalında IoT hub'ınıza gidin.

  2. Hub ayarları'nın altındaki kaynak menüsünde İleti yönlendirme'yi ve ardından Ekle'yi seçin.

    IoT hub'ınıza yeni bir yol eklemek için Ekle düğmesinin konumunu gösteren ekran görüntüsü.

  3. Uç Nokta sekmesinde, aşağıdaki bilgileri sağlayarak bir Depolama uç noktası oluşturun:

    Parameter Value
    Uç nokta türü Depolama’yı seçin.
    Uç nokta adı Bu uç nokta için benzersiz bir ad sağlayın.
    Azure Depolama kapsayıcısı Bir kapsayıcı seçin. Önceki bölümde oluşturduğunuz depolama hesabını ve kapsayıcıyı seçmek için istemleri izleyin.
    Kodlama JSON'ı seçin. Bu alan griyse depolama hesabı bölgeniz JSON'yi desteklemez. Bu durumda varsayılan AVRO ile devam edin.

    Doğru seçeneklerin seçili olduğu Depolama uç noktası ekle bölmesini gösteren ekran görüntüsü.

  4. Parametrelerin geri kalanı için varsayılan değerleri kabul edin ve Oluştur + İleri'yi seçin.

  5. Yol sekmesinde, oluşturduğunuz Depolama uç noktasına işaret eden bir yol oluşturmak için aşağıdaki bilgileri sağlayın:

    Parameter Value
    İsim Yolunuz için bir ad oluşturun.
    Veri kaynağı Açılan listeden Cihaz Telemetri İletileri'nin seçili olduğunu doğrulayın.
    Yolu etkinleştir Bu alanın işaretli olduğunu doğrulayın.
    Yönlendirme sorgusu Sorgu dizesi olarak girin level="storage" .

    Yönlendirme sorgusuyla yol eklemeyi gösteren ekran görüntüsü.

  6. Oluştur + zenginleştirmeleri atla'yı seçin.

Yönlendirilen iletileri görüntüleme

IoT Hub'da yol oluşturulduktan ve etkinleştirildikten sonra, sorgu koşuluna uyan iletileri depolama uç noktasına yönlendirmeye hemen başlar.

IoT Explorer ile yerleşik uç noktayı izleme

Geliştirme makinenizde IoT Explorer oturumuna dönün. IoT Gezgini'nin IoT hub'ınız için yerleşik uç noktayı izlediğini unutmayın. Bu, artık yalnızca, oluşturduğumuz özel rotayla yönlendirilmemiş iletileri görmeniz gerektiği anlamına gelir.

Kodu çalıştırarak örneği yeniden başlatın. Gelen iletileri birkaç an izleyin ve yalnızca levelnormal veya critical olarak ayarlanan iletileri görmeniz gerekir.

Depolama kapsayıcısında iletileri görüntüleme

İletilerin depolama kapsayıcısında geldiğini doğrulayın.

  1. Azure portalda depolama hesabınıza gidin.

  2. Menünün Veri depolama bölümünden Kapsayıcılar'ı seçin.

  3. Bu eğitim için oluşturduğunuz kapsayıcıyı seçin.

  4. IoT hub'ınızın adını içeren bir klasör olmalıdır. .json uzantılı bir dosyaya gelene kadar dosya yapısında derinlemesine ilerleyin.

    Depolama alanında yönlendirilen iletileri bulmayı gösteren ekran görüntüsü.

  5. JSON dosyasını seçin ve ardından İndir'i seçerek JSON dosyasını indirin. Cihazınızdan gelen ve level özelliği storage olarak ayarlanmış iletileri içeren dosyayı onaylayın.

  6. Örneği çalıştırmayı durdurun.

Kaynakları temizleme

Bu öğreticide kullandığınız tüm Azure kaynaklarını kaldırmak istiyorsanız kaynak grubunu silin. Bu eylem grubun içerdiği tüm kaynakları siler. Kaynak grubunun tamamını silmek istemiyorsanız, tek tek kaynakları bulmak ve silmek için Azure portalını kullanın.

Sonraki öğreticiye devam etmek istiyorsanız, burada oluşturduğunuz kaynakları saklayın.

  1. Azure portalında, bu öğreticinin IoT hub'ını ve depolama hesabını içeren kaynak grubuna gidin.
  2. Hangilerini temizlemek istediğinizi belirlemek için kaynak grubundaki tüm kaynakları gözden geçirin.
    • Tüm kaynağı silmek istiyorsanız Kaynak grubunu sil'i seçin.
    • Yalnızca belirli bir kaynağı silmek istiyorsanız, silmek istediklerinizi seçmek için her kaynak adının yanındaki onay kutularını kullanın. Ardından Sil'i seçin.

Sonraki adımlar

Bu öğreticide, bir Azure kaynağı için özel uç nokta oluşturmayı ve ardından bu uç noktaya cihaz iletileri göndermek için bir yol oluşturmayı öğrendiniz. Aşağı akış işlemeyi basitleştirmek için kullanılabilecek ek verilerle iletileri zenginleştirmeyi öğrenmek için sonraki öğreticiye geçin