Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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
- Yerleşik Event Hubs uç noktasında iletileri almayı aniden durdurdum
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.