IoT hub'ınızdaki kimlik kayıt defterini anlama
Her IoT hub'ı, IoT hub'ına bağlanmasına izin verilen cihazlar ve modüller hakkındaki bilgileri depolayan bir kimlik kayıt defterine sahiptir. Bir cihazın veya modülün ioT hub'ına bağlanabilmesi için önce IoT hub'ına ait kimlik kayıt defterinde bu cihaz veya modül için bir giriş olması gerekir. Bir cihaz veya modül, kimlik kayıt defterinde depolanan kimlik bilgilerine göre IoT hub'ında da kimlik doğrulaması yapmalıdır.
Kimlik kayıt defterinde depolanan cihaz veya modül kimliği büyük/küçük harfe duyarlıdır.
Üst düzeyde kimlik kayıt defteri, cihaz veya modül kimlik kaynaklarının REST özellikli bir koleksiyonudur. Kimlik kayıt defterine bir girdi eklediğinizde IoT Hub, buluttan cihaza iletileri içeren kuyruk gibi bir cihaz başına kaynak kümesi oluşturur.
Kimlik kayıt defterini aşağıdaki durumlarda kullanın:
- IoT hub'ınıza bağlanan cihazları veya modülleri sağlayın.
- Hub'ınızın cihazına veya modüle yönelik uç noktalara cihaz başına/modül başına erişimi denetleyin.
Kimlik kayıt defteri işlemleri
IoT Hub kimlik kayıt defteri aşağıdaki işlemleri kullanıma sunar:
- Cihaz veya modül kimliği oluşturma
- Cihaz veya modül kimliğini güncelleştirme
- Kimliğe göre cihaz veya modül kimliğini alma
- Cihaz veya modül kimliğini silme
- En fazla 1000 kimlik listeleme
- Cihaz kimliklerini Azure blob depolamaya aktarma
- Azure blob depolamadan cihaz kimliklerini içeri aktarma
Tüm bu işlemler, RFC7232 belirtildiği gibi iyimser eşzamanlılık kullanabilir.
Önemli
IoT hub'larının kimlik kayıt defterindeki tüm kimlikleri almanın tek yolu Dışarı aktarma işlevini kullanmaktır.
IoT Hub kimlik kayıt defteri:
- Uygulama meta verileri içermez.
Önemli
Kimlik kayıt defterini yalnızca cihaz yönetimi ve sağlama işlemleri için kullanın. Çalışma zamanındaki yüksek aktarım hızı işlemleri, kimlik kayıt defterinde işlem gerçekleştirmeye bağlı olmamalıdır. Örneğin, komut göndermeden önce cihazın bağlantı durumunu denetlemek desteklenen bir desen değildir. Kimlik kayıt defteri için azaltma oranlarını denetlediğinden emin olun.
Not
Cihaz veya modül kimliğinin oluşturulduktan sonra alınması birkaç saniye sürebilir. Hata durumunda cihaz veya modül kimliklerinin çalışmasını yeniden deneyin get
.
Cihazları devre dışı bırakma
Kimlik kayıt defterindeki bir kimliğin durum özelliğini güncelleştirerek cihazları devre dışı bırakabilirsiniz. Genellikle bu özelliği iki senaryoda kullanırsınız:
Sağlama düzenleme işlemi sırasında. Daha fazla bilgi için bkz . Cihaz Sağlama.
Bir cihazın gizliliğinin tehlikeye girdiğini veya herhangi bir nedenle yetkisiz hale geldiğini düşünüyorsanız.
Önemli
IoT Hub, sertifika tabanlı kimlik doğrulamasıyla cihazların kimliğini doğrularken sertifika iptal listelerini denetlemez. Riskli olabilecek bir sertifika nedeniyle IoT Hub'a bağlanması engellenmesi gereken bir cihazınız varsa, cihazı kimlik kayıt defterinde devre dışı bırakmanız gerekir.
Bu özellik modüller için kullanılamaz.
Daha fazla bilgi için bkz . IoT hub'ında bir cihazı devre dışı bırakma veya silme.
Cihaz kimliklerini içeri ve dışarı aktarma
Cihaz kimliklerini bir IoT hub'ına ait kimlik kayıt defterinden toplu olarak dışarı aktarmak için IoT Hub kaynak sağlayıcısı uç noktasında zaman uyumsuz işlemleri kullanın. Dışarı aktarmalar, kimlik kayıt defterinden okunan cihaz kimliği verilerini kaydetmek için müşteri tarafından sağlanan blob kapsayıcısını kullanan uzun süre çalışan işlerdir.
Cihaz kimliklerini bir IoT hub'ına ait kimlik kayıt defterine toplu olarak aktarmak için IoT Hub kaynak sağlayıcısı uç noktasında zaman uyumsuz işlemleri kullanın. İçeri aktarmalar, cihaz kimlik verilerini kimlik kayıt defterine yazmak için müşteri tarafından sağlanan blob kapsayıcısında verileri kullanan uzun süre çalışan işlerdir.
İçeri ve dışarı aktarma API'leri hakkında daha fazla bilgi için bkz . IoT Hub kaynak sağlayıcısı REST API'leri. İçeri ve dışarı aktarma işlerini çalıştırma hakkında daha fazla bilgi edinmek için bkz . IoT Hub cihaz kimliklerinin toplu yönetimi.
Cihaz kimlikleri, REST API veya IoT Hub Hizmet SDK'larından biri aracılığıyla Hizmet API'si kullanılarak bir IoT hub'ından dışarı ve içeri aktarılabilir.
Cihaz sağlama
Belirli bir IoT çözümünün depo verdiği cihaz verileri, bu çözümün belirli gereksinimlerine bağlıdır. Ancak, bir çözümün en düşük düzeyde cihaz kimliklerini ve kimlik doğrulama anahtarlarını depolaması gerekir. Azure IoT Hub kimlikler, kimlik doğrulama anahtarları ve durum kodları gibi her cihaz için değerleri depolayan bir kimlik kayıt defteri içerir. Bir çözüm, diğer cihaz verilerini depolamak için Tablo depolama, Blob depolama veya Azure Cosmos DB gibi diğer Azure hizmetlerini kullanabilir.
Cihaz sağlama , ilk cihaz verilerini çözümünüzdeki depolara ekleme işlemidir. Yeni bir cihazın hub'ınıza bağlanmasını sağlamak için IoT Hub kimlik kayıt defterine bir cihaz kimliği ve anahtarları eklemeniz gerekir. Sağlama işleminin bir parçası olarak, diğer çözüm depolarında cihaza özgü verileri başlatmanız gerekebilir. Azure IoT Hub Cihaz Sağlama Hizmeti'ni, insan müdahalesi gerektirmeden bir veya daha fazla IoT hub'ına dokunmadan, tam zamanında sağlamayı etkinleştirmek için de kullanabilirsiniz. Daha fazla bilgi edinmek için sağlama hizmeti belgelerine bakın.
Cihaz ve modül yaşam döngüsü bildirimleri
IoT Hub, yaşam döngüsü bildirimleri göndererek bir cihaz kimliği oluşturulduğunda veya silindiğinde IoT çözümünüzü bilgilendirebilir. Bunu yapmak için IoT çözümünüzün bir yol oluşturması ve veri kaynağını DeviceLifecycleEvents'e eşit olarak ayarlaması gerekir. Varsayılan olarak hiçbir yaşam döngüsü bildirimi gönderilmez, yani önceden böyle bir yol yoktur. DeviceLifecycleEvents'e eşit Veri Kaynağı ile bir yol oluşturularak hem cihaz kimlikleri hem de modül kimlikleri için yaşam döngüsü olayları gönderilir. İleti içeriği, olayların modül kimlikleri veya cihaz kimlikleri için oluşturulup oluşturulmadığına bağlı olarak değişir. Bildirim iletisinde döndürülen özellikler ve gövde hakkında daha fazla bilgi edinmek için bkz . Telemetri dışı olay şemaları.
Modül kimliği oluşturma bildirimleri IoT Edge modülleri için diğer modüllerden farklıdır. IoT Edge modülleri için oluşturma bildirimi yalnızca ilgili IoT Edge cihazı çalışıyorsa gönderilir. Diğer tüm modüller için, ioT Hub tarafında modül kimliği her güncelleştirildiğinde yaşam döngüsü bildirimleri gönderilir.
Cihaz kimliği özellikleri
Cihaz kimlikleri aşağıdaki özelliklere sahip JSON belgeleri olarak temsil edilir:
Özellik | Seçenekler | Açıklama |
---|---|---|
deviceId | gerekli, güncelleştirmelerde salt okunur | ASCII 7 bit alfasayısal karakterlerin yanı sıra belirli özel karakterler içeren büyük/küçük harfe duyarlı dize (en fazla 128 karakter - . % _ * ? ! ( ) , : = @ $ ' uzunluğunda). Özel karakterler: + # desteklenmez. |
generationId | gerekli, salt okunur | IoT hub'ı tarafından oluşturulan, büyük/küçük harfe duyarlı, en fazla 128 karakter uzunluğunda bir dize. Bu değer, silinip yeniden oluşturulduklarında aynı deviceId değerine sahip cihazları ayırt etmek için kullanılır. |
etag | gerekli, salt okunur | RFC7232 göre cihaz kimliği için zayıf bir ETag'i temsil eden bir dize. |
kimlik doğrulaması | isteğe bağlı | Kimlik doğrulama bilgilerini ve güvenlik malzemelerini içeren bileşik nesne. Daha fazla bilgi için REST API belgelerindeki Kimlik Doğrulama Mekanizması'na bakın. |
özelliklerinin | isteğe bağlı | Cihazın özellik kümesi. Örneğin, cihazın uç cihaz olup olmadığı. Daha fazla bilgi için REST API belgelerindeki Cihaz Özellikleri'ne bakın. |
deviceScope | isteğe bağlı | Cihazın kapsamı. Uç cihazlarda otomatik olarak oluşturulur ve sabittir. Uç olmayan cihazlarda kullanım dışıdır. Ancak, alt (yaprak) cihazlarda, API'nin önceki sürümleriyle geriye dönük uyumluluk için bu özelliği parentScopes özelliğiyle (üst cihazın deviceScope'ı) aynı değere ayarlayın. Daha fazla bilgi için bkz . Ağ geçidi olarak IoT Edge: Üst ve alt ilişkiler. |
parentScopes | isteğe bağlı | Alt cihazın doğrudan üst öğesinin kapsamı (üst cihazın deviceScope özelliğinin değeri). Uç cihazlarda, cihazın üst öğesi yoksa değer boş olur. Uç olmayan cihazlarda, cihazın üst öğesi yoksa özelliği mevcut değildir. Daha fazla bilgi için bkz . Ağ geçidi olarak IoT Edge: Üst ve alt ilişkiler. |
durum | gerekli | Erişim göstergesi. Etkinleştirilebilir veya Devre Dışı Bırakılabilir. Etkinse, cihazın bağlanmasına izin verilir. Devre Dışıysa, bu cihaz cihaza yönelik uç noktalara erişemez. |
statusReason | isteğe bağlı | Cihaz kimliği durumunun nedenini depolayan 128 karakter uzunluğunda bir dize. Tüm UTF-8 karakterlerine izin verilir. |
statusUpdateTime | salt okunur | Son durum güncelleştirmesinin tarihini ve saatini gösteren bir zaman göstergesi. |
connectionState | salt okunur | Bağlantı durumunu gösteren bir alan: Bağlandı veya Bağlantısı Kesildi. Bu alan, cihaz bağlantı durumunun IoT Hub görünümünü temsil eder. Önemli: Bu alan yalnızca geliştirme/hata ayıklama amacıyla kullanılmalıdır. Bağlantı durumu yalnızca MQTT veya AMQP kullanan cihazlar için güncelleştirilir. Ayrıca, protokol düzeyinde pingleri (MQTT pingleri veya AMQP pingleri) temel alır ve en fazla 5 dakika gecikme süresine sahip olabilir. Bu nedenlerden dolayı, bağlı olarak bildirilen bağlantısız cihazlar gibi hatalı pozitifler olabilir. |
connectionStateUpdatedTime | salt okunur | Bağlantı durumunun güncelleştirilmiş olduğu tarihi ve son zamanı gösteren zamana bağlı bir gösterge. |
lastActivityTime | salt okunur | Cihazın bağlanma, alma veya ileti gönderme tarihini ve son zamanını gösteren zamana bağlı bir gösterge. Bu özellik sonunda tutarlıdır, ancak 5-10 dakikaya kadar geciktirilebilir. Bu nedenle üretim senaryolarında kullanılmamalıdır. |
Not
Bağlantı durumu yalnızca bağlantı durumunun IoT Hub görünümünü temsil edebilir. Bu durumdaki güncelleştirmeler, ağ koşullarına ve yapılandırmalarına bağlı olarak gecikebilir.
Not
Şu anda cihaz SDK'ları deviceId içindeki ve #
karakterlerini kullanmayı +
desteklememektedir.
Modül kimliği özellikleri
Modül kimlikleri aşağıdaki özelliklere sahip JSON belgeleri olarak temsil edilir:
Özellik | Seçenekler | Açıklama |
---|---|---|
deviceId | gerekli, güncelleştirmelerde salt okunur | ASCII 7 bit alfasayısal karakterlerin yanı sıra belirli özel karakterler içeren büyük/küçük harfe duyarlı dize (en fazla 128 karakter - . + % _ # * ? ! ( ) , : = @ $ ' uzunluğunda). |
moduleId | gerekli, güncelleştirmelerde salt okunur | ASCII 7 bit alfasayısal karakterlerin yanı sıra belirli özel karakterler içeren büyük/küçük harfe duyarlı dize (en fazla 128 karakter - . + % _ # * ? ! ( ) , : = @ $ ' uzunluğunda). |
generationId | gerekli, salt okunur | IoT hub'ı tarafından oluşturulan, büyük/küçük harfe duyarlı, en fazla 128 karakter uzunluğunda bir dize. Bu değer, silinip yeniden oluşturulduklarında aynı deviceId değerine sahip cihazları ayırt etmek için kullanılır. |
etag | gerekli, salt okunur | RFC7232 göre cihaz kimliği için zayıf bir ETag'i temsil eden bir dize. |
kimlik doğrulaması | isteğe bağlı | Kimlik doğrulama bilgilerini ve güvenlik malzemelerini içeren bileşik nesne. Daha fazla bilgi için REST API belgelerindeki Kimlik Doğrulama Mekanizması'na bakın. |
managedBy | isteğe bağlı | Bu modülü kimin yönettiğini tanımlar. Örneğin, bu modülün sahibi edge çalışma zamanıysa bu değer "IoT Edge" olur. |
cloudToDeviceMessageCount | salt okunur | Şu anda modüle gönderilmek üzere kuyruğa alınan buluttan modüle iletilerin sayısı. |
connectionState | salt okunur | Bağlantı durumunu gösteren bir alan: Bağlandı veya Bağlantısı Kesildi. Bu alan, cihaz bağlantı durumunun IoT Hub görünümünü temsil eder. Önemli: Bu alan yalnızca geliştirme/hata ayıklama amacıyla kullanılmalıdır. Bağlantı durumu yalnızca MQTT veya AMQP kullanan cihazlar için güncelleştirilir. Ayrıca, protokol düzeyinde pingleri (MQTT pingleri veya AMQP pingleri) temel alır ve en fazla 5 dakika gecikme süresine sahip olabilir. Bu nedenlerden dolayı, bağlı olarak bildirilen bağlantısız cihazlar gibi hatalı pozitifler olabilir. |
connectionStateUpdatedTime | salt okunur | Bağlantı durumunun güncelleştirilmiş olduğu tarihi ve son zamanı gösteren zamana bağlı bir gösterge. |
lastActivityTime | salt okunur | Cihazın bağlanma, alma veya ileti gönderme tarihini ve son zamanını gösteren zamana bağlı bir gösterge. |
Not
Şu anda cihaz SDK'ları deviceId ve moduleId içindeki ve #
karakterlerini kullanmayı +
desteklememektedir.
Ek başvuru malzemesi
IoT Hub geliştirici kılavuzundaki diğer başvuru makaleleri şunlardır:
IoT Hub uç noktaları , her IoT hub'ına çalışma zamanı ve yönetim işlemleri için kullanıma sunan çeşitli uç noktaları açıklar.
Azaltma ve kotalar , IoT Hub hizmetine uygulanan kotaları ve azaltma davranışlarını açıklar.
Azure IoT cihaz ve hizmet SDK'ları , IoT Hub ile etkileşim kuran hem cihaz hem de hizmet uygulamaları geliştirirken kullanabileceğiniz çeşitli dil SDK'larını listeler.
IoT Hub sorgu dili , IoT Hub'dan cihaz ikizleriniz ve işleriniz hakkındaki bilgileri almak için kullanabileceğiniz sorgu dilini açıklar.
IoT Hub MQTT desteği , MQTT protokolü için IoT Hub desteği hakkında daha fazla bilgi sağlar.
Sonraki adımlar
IoT Hub kimlik kayıt defterini kullanmayı öğrendiğinize göre, aşağıdaki IoT Hub geliştirici kılavuzu makaleleriyle ilgilenebilirsiniz:
IoT Hub Cihazı Sağlama Hizmeti'ni kullanarak sıfır dokunma ve tam zamanında sağlamayı etkinleştirmek için bkz: