Aracılığıyla paylaş


İleti yönlendirme sorunlarını giderme

Bu makalede, IoT Hub ileti yönlendirmeyle ilgili yaygın sorunlar ve çözüm için izleme ve sorun giderme yönergeleri sağlanır.

İleti yönlendirmeyi izleme

Gönderilen iletilere genel bir bakış sağlamak için ileti yönlendirme ve uç noktalarla ilgili IoT Hub ölçümlerini izlemenizi öneririz. Ayrıca IoT Hub kaynak günlüklerindeki yollar için işlemleri özel işleme için Azure İzleyici Günlüklerine, Event Hubs'a veya Azure Depolama'ya göndermek için bir tanılama ayarı da oluşturabilirsiniz. Ölçümleri, kaynak günlüklerini ve tanılama ayarlarını kullanma hakkında daha fazla bilgi edinmek için bkz. IoT Hub'ı izleme. Lütfen kılavuz için IoT hub'ı ile ölçümleri ve kaynak günlüklerini ayarlama ve kullanma başlığına bakınız.

Ayrıca, yollardan herhangi birinde sorguyla eşleşmeyen iletileri korumak istiyorsanız geri dönüş yolunu etkinleştirmenizi öneririz. Bu iletiler, yapılandırılan bekletme gün sayısı için yerleşik uç noktada tutulabilir.

En sık karşılaşılan sorunlar

İleti yönlendirme ile ilgili en yaygın sorunlar aşağıdadır. Sorun gidermeye başlamak için ayrıntılı adımlar için sorunu seçin.

Cihazlarımdan gelen iletiler beklendiği gibi yönlendirilmiyor

Bu sorunu gidermek için aşağıdaki bilgileri analiz edin.

Bu uç nokta için yönlendirme ölçümleri

Yönlendirmeyle ilgili tüm IoT Hub ölçümlerineYönlendirme ön eki eklenir. Sorunların kök nedenini belirlemek için birden çok ölçümden alınan bilgileri birleştirebilirsiniz. Örneğin, bir uç noktaya teslim edilen veya herhangi bir rotadaki sorgularla eşleşmediğinde ve geri dönüş yolu devre dışı olduğunda bırakılan iletilerin sayısını belirlemek için Yönlendirme Teslimleri ölçümünü kullanın. İleti tesliminde gecikme süresinin sabit mi yoksa artıyor mu olduğunu gözlemlemek için Yönlendirme Gecikme Süresi ölçümünü denetleyin. Artan gecikme süresi belirli bir uç noktayla ilgili bir sorunu gösterebilir ve bu durumda uç noktanın durumunu denetlemenizi öneririz. Bu yönlendirme ölçümleri ayrıca uç nokta türü, belirli uç nokta adı ve iletinin teslim olmamasının nedeni gibi ölçümlerle ilgili ayrıntılar sağlayan boyutlara sahiptir.

İşletimsel sorunlar için kaynak günlükleri

Yönlendirme ve uç nokta işlemleri hakkında daha fazla bilgi edinmek veya sorunu daha fazla anlamak için hataları ve ilgili hata kodunu belirlemek için Rotalar kaynak günlüklerini inceleyin. Örneğin, günlükteki RouteEvaluationError işlem adı, ileti biçimiyle ilgili bir sorun nedeniyle yolun değerlendirilemeyeceğini gösterir. Sorunu azaltmak için belirli işlem adları için sağlanan ipuçlarını kullanın. Bir olay hata olarak günlüğe kaydedildiğinde, günlük değerlendirmenin neden başarısız olduğuna ilişkin daha fazla bilgi de sağlar. Örneğin, işlem adı EndpointUnhealthy ise, 403004 Hata kodu uç noktanın boş alanı bittiğini gösterir.

Uç noktanın durumu

REST API Uç Nokta Sağlık Durumunu Al'ı kullanarak uç noktaların sağlık durumunu alın. Bu API ayrıca bir iletinin uç noktaya en son ne zaman başarıyla gönderildiği, bilinen son hata, bilinen son hata zamanı ve bu uç nokta için en son gönderme girişiminde bulunulma zamanı hakkında bilgi sağlar. Bilinen son hata için sağlanan olası azaltmayı kullanın.

Yerleşik uç noktada iletileri almayı aniden durdurdum

Bu sorunu gidermek için aşağıdaki bilgileri analiz edin.

Yeni bir yol oluşturuldu mu?

Bir yol oluşturulduktan sonra, bu uç noktaya bir yol oluşturulmadığı sürece veriler yerleşik uç noktaya akmaya son verir. Yeni bir yol eklenirse iletilerin yerleşik uç noktaya akmaya devam ettiğinden emin olmak için olay uç noktasına bir yol yapılandırın.

Geri dönüş yolu devre dışı bırakıldı mı?

Geri dönüş yolu, mevcut yollardan herhangi birinde sorgu koşullarını karşılamayen tüm iletileri Event Hubs ile uyumlu yerleşik Event Hubs'a (iletiler/olaylar) gönderir. İleti yönlendirme açıksa geri dönüş yolu özelliğini etkinleştirebilirsiniz. Yerleşik uç noktaya 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. Ayrıca, tüm mevcut yollar silinirse, yerleşik uç noktadaki tüm verileri almak için geri dönüş yolunun etkinleştirilmesi gerekir.

IoT hub için Azure portalındaki Mesaj Yönlendirme dikey penceresini kullanarak yedek yolu etkinleştirebilir veya devre dışı bırakabilirsiniz. Geri dönüş yolu için özel uç nokta kullanmak üzere FallbackRouteProperties için Azure Resource Manager'ı da kullanabilirsiniz.

IoT Hub yönlendirme uç noktaları için bilinen son hatalar

REST API'sinde Uç Nokta Durumu Alma, uç noktanın iyi durumda olmama nedenini belirlemek için uç noktaların sistem durumunu ve bilinen son hatayı verir. Bu tabloda en yaygın hatalar listelenir.

Son Bilinen Hata Açıklama/ne zaman oluşur Olası Risk Azaltma
Geçici Geçici bir hata oluştu ve IoT Hub işlemi yeniden deneyecek. Yol kaynak günlüklerini gözlemleyin.
Dahili Hata Uç noktaya ileti teslim ederken bir hata oluştu. Bu hata bir dahili istisnadır ancak yol kaynak günlüklerini de gözlemleyin.
Yetkisiz IoT Hub, belirtilen uç noktaya ileti gönderme yetkisine sahip değil. Bağlantı dizesinin uç nokta için güncel olduğunu doğrulayın. Değiştiyse IoT Hub'ınızdaki bir güncelleştirmeyi göz önünde bulundurun. Uç nokta yönetilen kimlik kullanıyorsa, IoT Hub sorumlusunun hedefte gerekli izinlere sahip olup olmadığını denetleyin.
Kısıtlandı IoT Hub, endpoint'e ileti yazarken kısıtlanıyor. Etkilenen uç nokta için hız sınırlarını gözden geçirin. Gerekirse ölçeği artıracak şekilde uç nokta yapılandırmalarını değiştirin.
Zaman Aşımı İşlem zaman aşımına uğradı. İşlemi yeniden deneyin.
Bulunamadı Hedef kaynak yok. Hedef kaynağın var olduğundan emin olun.
Kapsayıcı Bulunamadı Depolama kapsayıcısı yok. Depolama kapsayıcısının mevcut olduğundan emin olun.
Kapsayıcı devre dışı bırakıldı Depolama kapsayıcısı devre dışı bırakıldı. Depolama kapsayıcısının etkinleştirildiğinden emin olun.
Maksimum Mesaj Boyutu Aşıldı İleti yönlendirmenin ileti boyutu sınırı 256 Kb'tır. Yönlendirilmekte olan ileti boyutu bu sınırı aştı. Daha az uygulama özelliği veya daha az ileti zenginleştirmesi kullanarak ileti boyutunun küçültülebilir olup olmadığını denetleyin.
Bölümlendirme ve Çoğaltma Algılama Desteklenmiyor Service Bus'ta kopya tespiti etkinleştirilmemiş olabilir. Service Bus'taki yinelenen saptamayı devre dışı bırakın veya yinelenen saptama olmadan bir varlık kullanmayı göz önünde bulundurun.
Oturumlu Varlık Desteklenmiyor Service Bus'ta oturumlar etkinleştirilmemiş olabilir. Service Bus oturumunu devre dışı bırakın veya oturum içermeyen bir varlık kullanmayı düşünün.
Mesaj için eşleşen abone bulunamadı. Service Bus konusuna mesaj yazacak bir abonelik yok. Yönlendirilecek IoT Hub iletileri için bir abonelik oluşturun.
DP Dışarıdan Etkisizleştirildi Uç nokta etkin durumda olmadığından IoT Hub bu noktaya ileti gönderebilir. Uç noktayı etkin duruma geri getirmek için etkinleştirin.
Cihaz Maksimum Kuyruk Derinliği Aşıldı Servis veri yolu boyut sınırına ulaşıldı. Yeni iletilerin Event Hubs'a alınmasına izin vermek için iletileri hedef Event Hubs'dan kaldırmayı göz önünde bulundurun.

Kaynak günlüklerini yönlendirir

Yol kaynak günlüklerinde günlüğe kaydedilen işlem adları ve hata kodları aşağıdadır.

İşlem Adları

İşlem Adı Seviye Açıklama
Tanımsız Rota Değerlendirmesi Bilgi İleti bir verme koşuluyla değerlendirilemez. Örneğin, yönlendirme sorgusu koşulundaki bir özellik iletide yoksa. Yönlendirme sorgusu söz dizimi hakkında daha fazla bilgi edinin.
Rota Değerlendirme Hatası Hata İleti biçimiyle ilgili bir sorun nedeniyle ileti değerlendirilirken bir hata oluştu. Örneğin, içerik kodlaması belirtilmediyse veya İçerik türü iletide geçerli değilse bu hata günlüğe kaydedilir. Bunlar sistem özelliklerinde ayarlanmalıdır.
Bırakılan Mesaj Hata İleti düştü ve yönlendirilmedi. Bunun nedeni iletinin herhangi bir yönlendirme sorgusuyla eşleşmemesi veya uç noktanın ölü olması ve birkaç yeniden denemeden sonra iletinin teslim edilememesi olabilir. REST API'sini kullanarak uç nokta durumu hakkında daha fazla ayrıntı almanızı öneririz.
Uç NoktaSağlıksız Hata Uç nokta IoT Hub'dan gelen iletileri kabul etmiyor ve IoT Hub iletileri yeniden göndermeye çalışıyor. REST API'sinin uç nokta durumunu alma yoluyla bilinen son hatayı gözlemlemenizi öneririz.
Uç Nokta Ölü Hata Uç nokta bir saatten uzun süredir IoT Hub'dan gelen iletileri kabul etmemiştir. REST API'sinin uç nokta durumunu alma yoluyla bilinen son hatayı gözlemlemenizi öneririz.
Uç NoktaSağlıklı Bilgi Uç nokta iyi durumda ve IoT Hub'dan ileti alıyor. Bu ileti sürekli günlüğe kaydedilmez, ancak yalnızca uç nokta yeniden iyi duruma geldiğinde günlüğe kaydedilir. Bu ileti, IoT Hub'ın uç noktaya ileti gönderemediği, ancak uç noktanın artık iyi durumda olduğu anlamına gelir.
Bağlantısı Kesilmiş Mesaj Bilgi İleti hiçbir yol ile eşleşmiyor.
Geçersiz Mesaj Hata uç noktayla uyumsuzluk nedeniyle ileti geçersiz. Uç nokta yapılandırmalarını denetlemenizi öneririz.

UndefinedRouteEvaluation, RouteEvaluationError ve OrphanedMessage işlemleri, IoT Hub'ı başına dakikada en fazla bir kez kısıtlanır ve günlüğe kaydedilir.

Sık karşılaşılan hata kodları

Hata Kodu Açıklama
401002 IoT Hub Yetkisiz Erişimi
413001 Mesaj çok büyük
403004 Cihaz kuyruk derinliği üst sınırı aşıldı
503008 Bağlantı alımı kısıtlandı
500000 Genel Sunucu hatası
401 Yetkisiz
503 Hizmet Kullanılamıyor
500001 Sunucu Hatası
400103 Geçersiz İçerik Kodlaması veya İçerik Türü
404001 Cihaz Bulunamadı

Sonraki Adımlar

Daha fazla yardıma ihtiyacınız varsa Microsoft Soru-Cevap ve Stack Overflow forumlarında Azure uzmanlarına başvurabilirsiniz. Alternatif olarak, bir Azure destek talebi de oluşturabilirsiniz. Azure destek sitesi gidin ve Destek Alseçeneğini belirleyin.