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 veya modülün IoT hub'ına bağlanabilmesi için ioT hub'ında bir cihaz veya modül girdisi olması gerekir. Bir cihaz veya modülün kimlik kayıt defterinde depolanan kimlik bilgilerine göre IoT hub'ında da kimlik doğrulaması yapması gerekir.

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 rest özellikli bir cihaz veya modül kimlik kaynakları koleksiyonudur. Kimlik kayıt defterine bir giriş eklediğinizde, IoT Hub uçarak buluttan cihaza iletileri içeren kuyruk gibi cihaz başına bir dizi kaynak oluşturur.

Aşağıdakileri yapmanız gerektiğinde kimlik kayıt defterini 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'de belirtildiği gibi iyimser eşzamanlılığı kullanabilir.

Önemli

IoT hub'ında kimlik kayıt defterindeki tüm kimlikleri almanın tek yolu Dışarı Aktarma işlevini kullanmaktır.

IoT Hub kimlik kayıt defteri:

  • Herhangi bir uygulama meta verisi 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, bir komutu 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. Güvenliği aşılmış olabilecek bir sertifika nedeniyle IoT Hub bağlanmasının 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 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'ında kimlik kayıt defterine toplu olarak içeri 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 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ı aktarılabilir 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, en azından bir çözümün 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. Hub'ınıza yeni bir cihazın bağlanmasını sağlamak için IoT Hub kimlik kayıt defterine bir cihaz kimliği ve anahtar eklemeniz gerekir. Sağlama işleminin bir parçası olarak, diğer çözüm depolarında cihaza özgü verileri başlatmanız gerekebilir. ayrıca Azure IoT Hub Cihaz Sağlama Hizmeti'ni kullanarak insan müdahalesi gerektirmeden bir veya daha fazla IoT hub'ına dokunmadan, tam zamanında sağlamayı etkinleştirebilirsiniz. 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 için bildirimde bulunabilir. 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, 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; ancak ileti içeriği, olayların modül kimlikleri veya cihaz kimlikleri için oluşturulup oluşturulmadığına bağlı olarak farklılık gösterir. IoT Edge modüller için modül kimliği oluşturma akışının diğer modüllerden farklı olduğu unutulmalı, çünkü IoT Edge modüller için oluşturma bildirimi yalnızca güncelleştirilmiş IoT Edge modül kimliği için ilgili IoT Edge Cihazı çalışıyorsa gönderilir. Diğer tüm modüller için, modül kimliği IoT Hub tarafında her güncelleştirildiğinde yaşam döngüsü bildirimleri gönderilir. Bildirim iletisinde döndürülen özellikler ve gövde hakkında daha fazla bilgi edinmek için bkz . Telemetri dışı olay şemaları.

Cihaz kimliği özellikleri

Cihaz kimlikleri aşağıdaki özelliklere sahip JSON belgeleri olarak temsil edilir:

Özellik Seçenekler Description
deviceId gerekli, güncelleştirmelerde salt okunur ASCII 7 bit alfasayısal karakterlerden oluşan büyük/küçük harfe duyarlı dize (en çok 128 karakter uzunluğunda) ve belirli özel karakterler: - . % _ * ? ! ( ) , : = @ $ '. Özel karakterler: + # desteklenmez.
generationId gerekli, salt okunur En fazla 128 karakter uzunluğunda, IoT hub'ı tarafından oluşturulan büyük/küçük harfe duyarlı 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'ye 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.
özellikler 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 bölümü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'u ) 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ışı bırakılırsa, bu cihaz cihaza yönelik hiçbir uç noktaya 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 zamana bağlı gösterge.
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 ping'leri) temel alır ve yalnızca 5 dakikalık en fazla gecikme süresine sahip olabilir. Bu nedenlerden dolayı, bağlı olarak bildirilen bağlantısız cihazlar gibi hatalı pozitif sonuçlar olabilir.
connectionStateUpdatedTime salt okunur Bağlantı durumunun güncelleştirilmiş olduğu tarihi ve son zamanı gösteren bir zamana bağlı gösterge.
lastActivityTime salt okunur Cihazın bağlanıp alındığı veya ileti gönderdiği tarihi ve son zamanı gösteren geçici bir gösterge. Bu özellik sonunda tutarlıdır, ancak 5 ile 10 dakikaya kadar geciktirilebilir. Bu nedenle üretim senaryolarında kullanılmamalıdır.

Not

Bağlantı durumu yalnızca bağlantının durumunun IoT Hub görünümünü temsil edebilir. Ağ koşullarına ve yapılandırmalarına bağlı olarak bu duruma Güncelleştirmeler 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 Description
deviceId gerekli, güncelleştirmelerde salt okunur ASCII 7 bit alfasayısal karakterlerden oluşan büyük/küçük harfe duyarlı dize (en çok 128 karakter uzunluğunda) ve belirli özel karakterler: - . + % _ # * ? ! ( ) , : = @ $ '.
moduleId gerekli, güncelleştirmelerde salt okunur ASCII 7 bit alfasayısal karakterlerden oluşan büyük/küçük harfe duyarlı dize (en çok 128 karakter uzunluğunda) ve belirli özel karakterler: - . + % _ # * ? ! ( ) , : = @ $ '.
generationId gerekli, salt okunur En fazla 128 karakter uzunluğunda, IoT hub'ı tarafından oluşturulan büyük/küçük harfe duyarlı 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'ye 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 ileti 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 ping'leri) temel alır ve yalnızca 5 dakikalık en fazla gecikme süresine sahip olabilir. Bu nedenlerden dolayı, bağlı olarak bildirilen bağlantısız cihazlar gibi hatalı pozitif sonuçlar olabilir.
connectionStateUpdatedTime salt okunur Bağlantı durumunun güncelleştirilmiş olduğu tarihi ve son zamanı gösteren bir zamana bağlı gösterge.
lastActivityTime salt okunur Cihazın bağlanıp alındığı veya ileti gönderdiği tarihi ve son zamanı gösteren geçici bir gösterge.

Not

Şu anda cihaz SDK'ları deviceId ve moduleId içindeki ve # karakterlerini kullanmayı +desteklememektedir.

Ek başvuru malzemeleri

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, cihaz ikizleriniz ve işleriniz hakkında IoT Hub bilgi 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:

Sıfır dokunma ve tam zamanında sağlamayı etkinleştirmek üzere IoT Hub Cihaz Sağlama Hizmeti'ni kullanmayı keşfetmek için bkz: