Öğretici: IoT Hub ileti yönlendirmeyi 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 hub'ı. Henüz bir hub'ına sahip değilseniz IoT hub'ı oluşturma makalesindeki adımları izleyebilirsiniz.
Bu öğreticide C# için 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 (MQTT) Bağlanma.
İsteğe bağlı olarak Azure IoT Gezgini'ni 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 . En iyi güvenlik yöntemleri > Bağlantı güvenliği.
Menünün Cihaz yönetimi bölümünden Cihazlar'ı seçin.
Cihaz ekle'yi seçin.
Bir cihaz kimliği girin ve Kaydet'i seçin.
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.
Cihaz anahtarlarından birini kopyalayın ve kaydedin. Sanal cihaz telemetri iletileri oluşturan örnek kodu yapılandırmak için bu değeri kullanacaksınız.
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.
İpucu
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.
Önkoşulların bir parçası olarak yapmadıysanız şimdi GitHub'dan C# için Azure IoT SDK deposunu indirin veya kopyalayın.
SDK'yı indirdiğiniz veya kopyaladığınız klasörden klasöre
azure-iot-sdk-csharp\iothub\device\samples\how to guides\HubRoutingSample
gidin.Azure IoT C# SDK'sını
HubRoutingSample.csproj
ve dosyada belirtilen gerekli bağımlılıkları yükleyin:dotnet restore
Seçtiğiniz bir düzenleyicide
Parameters.cs
dosyayı açın. Bu dosya, örnek tarafından desteklenen parametreleri gösterir.PrimaryConnectionString
Bu makalede örneği çalıştırırken yalnızca parametresi kullanılacaktır. Bu dosyadaki kodu gözden geçirin. Değişiklik gerekmez.Aşağıdaki komutu kullanarak örnek kodu derleyin ve çalıştırın:
değerini IoT hub'ınızdaki cihazınızdaki birincil bağlantı dizesi ile değiştirin
<myDevicePrimaryConnectionString>
.dotnet run --PrimaryConnectionString <myDevicePrimaryConnectionString>
IoT Hub'a gönderilirken çıktıya yazdırılan iletileri görmeye başlamanız gerekir. Öğretici 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.
Azure portalında IoT Hub'ınıza gidin.
Menünün Güvenlik ayarları bölümünde Paylaşılan erişim ilkeleri'ni seçin.
iothubowner ilkesini seçin.
Birincil bağlantı dizesi kopyalayın.
Şimdi bu bağlantı dizesi kullanarak IoT hub'ınız için IoT Gezgini'ni yapılandırın.
Geliştirme makinenizde IoT Explorer'ı açın.
Bağlantı ekle'yi seçin.
Hub'ınızın bağlantı dizesi metin kutusuna yapıştırın.
Kaydet'i seçin.
IoT hub'ınıza bağlandıktan sonra cihazların listesini görmeniz gerekir. Bu öğretici için oluşturduğunuz cihaz kimliğini seçin.
Telemetri'yi seçin.
Cihazınız çalışmaya devam ettiyse Başlat'ı seçin. Cihazınız çalışmıyorsa telemetriyi görmezsiniz.
Cihazınızdan gelen ve en son iletilerin en üstte görüntülendiği iletileri görmeniz gerekir.
Normal, depolama ve kritik olmak üzere üç farklı ileti türü gördüğünüzden emin olmak için gelen iletileri birkaç dakika izleyin. Bunu 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. İletiler yalnızca IoT hub'ında diğer yollarla eşleşmediğinde yerleşik uç noktaya gittiği için bu iletiler IoT Gezgini'nde görüntülenmez.
İ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önlendirileceğ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 buna yönlendirilen cihaz iletilerini barındıracak bir kapsayıcı oluşturun.
Azure portalında Depolama hesaplarını arayın.
Oluştur'u belirleyin.
Depolama hesabınız için aşağıdaki değerleri sağlayın:
Parametre 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. Performans Varsayılan Standart değeri kabul edin. Gözden Geçir + oluştur'u seçerek diğer tüm varsayılan değerleri kabul edebilirsiniz.
Doğrulama tamamlandıktan sonra Oluştur'u seçin.
Dağıtım tamamlandıktan sonra, Kaynağa git’i seçin.
Depolama hesabı menüsünde Veri depolama bölümünde Kapsayıcılar'ı seçin.
Yeni bir kapsayıcı oluşturmak için + Kapsayıcı'ya tıklayın.
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ğinin depolama olarak ayarlandığı iletiler için filtreleyen bir yol oluşturun ve bunları depolama uç noktasına yönlendirin.
Not
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. Zaten ayarlanmış 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 lütfen depolamaya yönlendirme yönergelerine bakın.
Ö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 . En iyi güvenlik yöntemleri > Bulut güvenliği.
Hub ayarları'nın altındaki kaynak menüsünde İleti yönlendirme'yi ve ardından Ekle'yi seçin.
Uç Nokta sekmesinde, aşağıdaki bilgileri sağlayarak bir Depolama uç noktası oluşturun:
Parametre 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ı Kapsayıcı seçin'i 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. Parametrelerin geri kalanı için varsayılan değerleri kabul edin ve Oluştur + İleri'yi seçin.
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:
Parametre Value Ad 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"
.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 yol tarafından yönlendirilmeyen iletileri görüyor olmanız gerektiği anlamına gelir.
Kodu çalıştırarak örneği yeniden başlatın. Gelen iletileri birkaç dakika izleyin ve yalnızca veya critical
olarak ayarlanmış normal
iletileri level
görmeniz gerekir.
Depolama kapsayıcısında iletileri görüntüleme
İletilerin depolama kapsayıcısında geldiğini doğrulayın.
Azure portalda depolama hesabınıza gidin.
Menünün Veri depolama bölümünden Kapsayıcılar'ı seçin.
Bu öğretici için oluşturduğunuz kapsayıcıyı seçin.
IoT hub'ınızın adını içeren bir klasör olmalıdır. .json bir dosyaya gelene kadar dosya yapısında detaya gidin.
JSON dosyasını seçin ve ardından İndir'i seçerek JSON dosyasını indirin. Dosyanın cihazınızdan özelliği olarak ayarlanmış iletiler içerdiğini
level
storage
onaylayın.Ö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.
- Azure portalında, bu öğreticinin IoT hub'ını ve depolama hesabını içeren kaynak grubuna gidin.
- 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