Azure hizmetlerine cihazdan buluta iletiler göndermek için IoT Hub ileti yönlendirmeyi kullanma
İleti yönlendirme, cihazlarınızdan bulut hizmetlerine otomatik, ölçeklenebilir ve güvenilir bir şekilde ileti göndermenizi sağlar. İleti yönlendirme şu şekilde kullanılabilir:
Cihaz telemetri iletilerini ve olaylarını yerleşik uç noktaya ve özel uç noktalara gönderin. Yönlendirilebilen olaylar cihaz yaşam döngüsü olayları, cihaz ikizi değişiklik olayları, dijital ikiz değişiklik olayları ve cihaz bağlantı durumu olaylarıdır.
Zengin sorgular uygulayarak verileri yönlendirmeden önce filtreleyin. İleti yönlendirme, ileti özellikleri ve ileti gövdesinin yanı sıra cihaz ikizi etiketlerini ve cihaz ikizi özelliklerini sorgulamanızı sağlar. Daha fazla bilgi için bkz . İleti yönlendirmedeki sorgular.
IoT Hub, protokoller arasında birlikte çalışabilirlik için tüm cihazdan buluta mesajlaşma için ortak bir biçim tanımlar. Daha fazla bilgi için bkz . IoT Hub iletileri oluşturma ve okuma.
Not
Buluttan cihaza mesajlaşma, cihaz ikizleri ve cihaz yönetimi gibi bu makalede bahsedilen özelliklerden bazıları yalnızca IoT Hub'ın standart katmanında kullanılabilir. Temel ve standart/ücretsiz IoT Hub katmanları hakkında daha fazla bilgi için bkz. Çözümünüz için doğru IoT Hub katmanını seçme.
Yönlendirme uç noktaları
Her IoT hub'ına Event Hubs ile uyumlu iletiler/olaylar adlı varsayılan bir yönlendirme uç noktası vardır. Ayrıca Azure aboneliğinizdeki diğer hizmetlere işaret eden özel uç noktalar da oluşturabilirsiniz.
IoT Hub şu anda ileti yönlendirme için aşağıdaki uç noktaları destekler:
- Yerleşik uç nokta
- Depolama kapsayıcıları
- Service Bus kuyrukları
- Service Bus konuları
- Event Hubs
- Cosmos DB
Bu uç noktaların her biri hakkında daha fazla bilgi için bkz . IoT Hub uç noktaları.
Her ileti, yönlendirme sorguları eşleşen tüm uç noktalara yönlendirilir; bu da bir iletinin birden çok uç noktaya yönlendirilebileceği anlamına gelir. Ancak, bir ileti aynı uç noktaya işaret eden birden çok yolla eşleşiyorsa, IoT Hub iletiyi bu uç noktaya yalnızca bir kez teslim eder.
İleti yönlendirmenin çalışması için IoT Hub'ın bu hizmet uç noktalarına yazma erişimi olması gerekir. Uç noktalarınızı Azure portalı üzerinden yapılandırıyorsanız, sizin için gerekli izinler eklenir. Uç noktalarınızı PowerShell veya Azure CLI kullanarak yapılandırıyorsanız yazma erişimi izni vermeniz gerekir.
Uç nokta oluşturmayı öğrenmek için aşağıdaki makalelere bakın:
- Azure portalını kullanarak yolları ve uç noktaları yönetme
- Azure CLI kullanarak yolları ve uç noktaları yönetme
- PowerShell kullanarak yolları ve uç noktaları yönetme
- Azure Resource Manager'ı kullanarak yolları ve uç noktaları yönetme
Hizmetlerinizi beklenen aktarım hızını destekleyecek şekilde yapılandırdığınızdan emin olun. Örneğin, Event Hubs'ı özel uç nokta olarak kullanıyorsanız, IoT Hub ileti yönlendirmesi aracılığıyla göndermeyi planladığınız olayların girişiyle başa çıkabilmesi için bu olay hub'ının aktarım hızı birimlerini yapılandırmanız gerekir. Benzer şekilde, uç nokta olarak Service Bus kuyruğu kullanılırken, kuyruğun tüketiciler tarafından çıkış yapılana kadar tüm veri girişlerini tutabilmesi için en büyük boyutu yapılandırmanız gerekir. IoT çözümünüzü ilk kez yapılandırırken diğer uç noktalarınızı izlemeniz ve gerçek yük için gerekli ayarlamaları yapmanız gerekebilir.
Özel uç noktanızda güvenlik duvarı yapılandırmaları varsa, Microsoft'un güvenilen birinci taraf özel durumunu kullanmayı göz önünde bulundurun.
Başka bir abonelikteki bir uç noktaya yönlendirme
Uç nokta kaynağı IoT hub'ınızdan farklı bir abonelikteyse, özel uç nokta oluşturmadan önce IoT hub'ınızı güvenilir bir Microsoft hizmeti olarak yapılandırmanız gerekir. Özel uç noktayı oluşturduğunuzda, Kimlik doğrulama türünü kullanıcı tarafından atanan kimlik olarak ayarlayın.
Daha fazla bilgi için bkz . IoT Hub'dan diğer Azure kaynaklarına çıkış bağlantısı.
Yönlendirme sorguları
IoT Hub ileti yönlendirme, verileri uç noktalara yönlendirmeden önce filtrelemek için bir sorgulama özelliği sağlar. Yapılandırdığınız her yönlendirme sorgusu aşağıdaki özelliklere sahiptir:
Özellik | Açıklama |
---|---|
Adı | Sorguyu tanımlayan benzersiz ad. |
Kaynak | Üzerinde işlem yapılacak veri akışının kaynağı. Örneğin, cihaz telemetrisi. |
Condition | Uç noktayla eşleşip eşleşmediğini belirlemek için ileti uygulaması özellikleri, sistem özellikleri, ileti gövdesi, cihaz ikizi etiketleri ve cihaz ikizi özelliklerine karşı çalıştırılacak yönlendirme sorgusunun sorgu ifadesi. |
Uç nokta | IoT Hub'ın sorguyla eşleşen iletiler gönderdiği uç noktanın adı. IoT hub'ınız ile aynı bölgede bir uç nokta seçmenizi öneririz. |
Tek bir ileti birden çok yönlendirme sorgusundaki koşulla eşleşebilir ve bu durumda IoT Hub iletiyi eşleşen her sorguyla ilişkili uç noktaya teslim eder. IoT Hub ayrıca ileti teslimini otomatik olarak yinelenenleri de kaldırdığından, bir ileti aynı hedefe sahip birden çok sorguyla eşleşiyorsa, bu hedefe yalnızca bir kez yazılır.
Daha fazla bilgi için bkz . IoT Hub ileti yönlendirme sorgusu söz dizimi.
Yönlendirilen verileri okuma
Bir uç noktadan iletileri okumayı öğrenmek için aşağıdaki makaleleri kullanın.
Blob depolamadan okuma
Event Hubs'dan okuma
Service Bus kuyruklarından okuma
Service Bus konu başlıklarından okuma
Geri dönüş yolu
Geri dönüş yolu, mevcut yollardan herhangi birinde sorgu koşullarını karşılamayan tüm iletileri Event Hubs ile uyumlu yerleşik uç noktaya (iletiler/olaylar) gönderir. İleti yönlendirme etkinleştirildiyse geri dönüş yolu özelliğini etkinleştirebilirsiniz. Herhangi bir yol oluşturulduktan sonra, bu uç noktaya bir yol oluşturulmadığı sürece veriler yerleşik uç noktaya akmaya son verir. Yerleşik uç noktaya hiç yol yoksa ve bir geri dönüş yolu etkinleştirilirse, yalnızca yollardaki sorgu koşullarıyla eşleşmeyen iletiler yerleşik uç noktaya gönderilir. Tüm mevcut yollar silinse bile, yerleşik uç noktadaki tüm verileri almak için geri dönüş yolu özelliğinin etkinleştirilmesi gerekir.
Azure portalında İleti yönlendirme dikey penceresinde geri dönüş yolunu etkinleştirebilir veya devre dışı bırakabilirsiniz. Geri dönüş yolu için özel bir uç nokta kullanmak üzere FallbackRouteProperties için Azure Resource Manager'ı da kullanabilirsiniz.
Telemetri dışı olaylar
İleti yönlendirme, cihaz telemetrisine ek olarak aşağıdakiler de dahil olmak üzere telemetri dışı olayların gönderilmesini de sağlar:
- Cihaz ikizi değişiklik olayları
- Cihaz yaşam döngüsü olayları
- Cihaz işi yaşam döngüsü olayları
- Dijital ikiz değişiklik olayları
- Cihaz bağlantı durumu olayları
Örneğin, veri kaynağı Cihaz İkizi Değişiklik Olayları olarak ayarlanmış bir yol oluşturulursa, IoT Hub uç noktaya cihaz ikizindeki değişikliği içeren iletiler gönderir. Benzer şekilde, veri kaynağı Cihaz Yaşam Döngüsü Olayları olarak ayarlanmış bir yol oluşturulursa, IoT Hub cihazın veya modülün silindiğini veya oluşturulduğunu belirten bir ileti gönderir. Cihaz yaşam döngüsü olayları hakkında daha fazla bilgi için bkz . Cihaz ve modül yaşam döngüsü bildirimleri.
Azure IoT Tak Çalıştır kullanırken, bir geliştirici veri kaynağı Dijital İkiz Değişiklik Olayları olarak ayarlanmış yollar oluşturabilir ve IoT Hub her dijital ikiz özelliği ayarlandığında veya değiştirildiğinde, dijital ikiz değiştirildiğinde veya temel alınan cihaz ikizi için bir değişiklik olayı gerçekleştiğinde iletiler gönderir. Son olarak, veri kaynağı Cihaz Bağlantı Durumu Olayları olarak ayarlanmış bir yol oluşturulursa IoT Hub, cihazın bağlı mı yoksa bağlantısı kesilmiş mi olduğunu belirten bir ileti gönderir.
IoT Hub, bu olaylara dayalı gerçek zamanlı tümleştirmeleri ve iş akışlarının otomasyonunu desteklemek üzere cihaz olaylarını yayımlamak için Azure Event Grid ile de tümleşir. Senaryonuz için en uygun olanın hangisi olduğunu öğrenmek için ileti yönlendirme ve Event Grid arasındaki önemli farklara bakın.
Cihaz bağlantı durumu olaylarıyla ilgili sınırlamalar
Cihaz bağlantı durumu olayları, MQTT veya AMQP protokolü veya WebSockets üzerinden bu protokollerden birini kullanarak bağlanan cihazlar için kullanılabilir. Yalnızca HTTPS ile yapılan istekler cihaz bağlantı durumu bildirimlerini tetiklemez. IoT Hub'ın cihaz bağlantı durumu olaylarını göndermeye başlaması için, bir bağlantı açıldıktan sonra bir cihazın buluttan cihaza alma iletisi işlemini veya cihazdan buluta gönderme telemetri işlemini çağırması gerekir. Azure IoT SDK'ları dışında, MQTT'de bu işlemler uygun mesajlaşma konularındaki SUBSCRIBE veya PUBLISH işlemlerine eşit olur. AMQP üzerinden bu işlemler, bir iletiyi uygun bağlantı yollarına eklemeye veya aktarmaya eşit olur. Daha fazla bilgi için aşağıdaki makaleleri inceleyin:
IoT Hub her bir cihaz bağlanma ve bağlantıyı kesme olayını bildirmez, bunun yerine düzenli aralıklı 60 saniyelik anlık görüntüde alınan geçerli bağlantı durumunu yayımlar. Farklı sıra numaraları veya farklı bağlantı durumu olaylarıyla aynı bağlantı durumu olayının alınması, her ikisi de 60 saniyelik pencere sırasında cihaz bağlantı durumunda bir değişiklik olduğu anlamına gelir.
Test yolları
Yeni bir yol oluşturduğunuzda veya mevcut bir yolu düzenlerken, yol sorgusunu örnek bir iletiyle test etmelisiniz. Tek tek yolları test edebilir veya tüm yolları aynı anda test edebilirsiniz ve test sırasında uç noktalara hiçbir ileti yönlendirilmemiştir. Test için Azure portalı, Azure Resource Manager, Azure PowerShell ve Azure CLI kullanılabilir. Sonuçlar, örnek iletinin sorguyla eşleşip eşleşmediğini ya da örnek ileti veya sorgu söz dizimi yanlış olduğundan testin çalıştırılamadığını belirlemeye yardımcı olur. Daha fazla bilgi edinmek için bkz . Test Rotası ve Tüm Yolları Test Etme.
Gecikme süresi
Cihazdan buluta telemetri iletilerini yönlendirdiğinizde, ilk yol oluşturulduktan sonra uçtan uca gecikme süresinde küçük bir artış olur.
Çoğu durumda gecikme süresindeki ortalama artış 500 milisaniyeden kısadır. Ancak, karşılaştığınız gecikme süresi, IoT hub'ınızın katmanına ve çözüm mimarinize bağlı olarak değişebilir ve daha yüksek olabilir. İletiler/olaylar için Yönlendirme: ileti gecikme süresi veya d2c.endpoints.latency.builtIn.events IoT Hub ölçümlerini kullanarak gecikme süresini izleyebilirsiniz. İlk yoldan sonra herhangi bir yol oluşturmak veya silmek uçtan uca gecikme süresini etkilemez.
İzleme ve sorun giderme
IoT Hub, hub'ınızın durumuna ve gönderilen iletilere genel bir bakış sağlamak için yönlendirme ve uç noktalarla ilgili çeşitli ölçümler sağlar. Ayrıca, IoT Hub kaynak günlüklerindeki yollar kategorisiyle IoT Hub tarafından algılanan yönlendirme sorgusunun ve uç nokta durumunun değerlendirilmesi sırasında oluşan hataları izleyebilirsiniz. IoT Hub ile ölçümleri ve kaynak günlüklerini kullanma hakkında daha fazla bilgi edinmek için bkz . Azure IoT Hub'ı izleme.
Uç noktaların sistem durumunu almak için REST API Uç Nokta Durumu Al'ı kullanabilirsiniz.
Daha fazla ayrıntıya ulaşmak ve yönlendirme sorunlarını giderme konusunda destek almak için bkz. Yönlendirme sorunlarını giderme kılavuzu.