IoT Hub iletilerini oluşturma ve okuma

Protokoller genelinde kesintisiz birlikte çalışabilirliği desteklemek için, IoT Hub tüm cihaza yönelik protokoller için ortak bir ileti biçimi tanımlar. Bu ileti biçimi, cihazdan buluta yönlendirme ve buluttan cihaza iletiler için kullanılır.

Not

Bu makalede bahsedilen, buluttan cihaza mesajlaşma, cihaz iksi ve cihaz yönetimi gibi özelliklerden bazıları yalnızca standart IoT Hub standart katmanında kullanılabilir. Temel ve standart IoT Hub katmanları hakkında daha fazla bilgi için bkz. Doğru IoT Hub katmanını seçme.

IoT Hub, akış mesajlaşma düzenlerini kullanarak cihazdan buluta mesajlaşma uygular. IoT Hub cihazdan buluta iletiler, birden çok okuyucu tarafından okunabilen hizmetten oluşan yüksek hacimlerle ilgili Service Bus iletilerden daha benzer Event Hubs olaylardır .

IoT Hub bir ileti aşağıdakilerden oluşur:

  • Aşağıda listelenen sistem özelliklerinin önceden belirlenmiş bir kümesi.

  • Uygulama özellikleri kümesi. İleti gövdesinin serisini kaldırmak gerekmeden uygulamanın tanımlayabilmesine ve erişebileceği dize özelliklerinin bir sözlüğü. IoT Hub bu özellikleri hiçbir şekilde değiştirmez.

  • Donuk ikili gövde.

Özellik adları ve değerleri yalnızca ASCII alfasayısal karakterler içerebilir ve {'!', '#', '$', '%, '&', ''', '*', '+', '-', '.', '^', '_', '`', '|', '~'} https protokolünü kullanarak cihazdan buluta iletiler gönderdiğinizde ya da buluttan cihaza iletiler gönderdiğinizde olabilir.

IoT Hub ile cihazdan buluta mesajlaşma aşağıdaki özelliklere sahiptir:

  • Cihazdan buluta iletiler, en fazla yedi güne kadar bir IoT Hub 'ının varsayılan iletiler/olaylar uç noktasında dayanıklı ve korunur.

  • Cihazdan buluta iletiler en çok 256 KB olabilir ve göndermeleri iyileştirmek için toplu olarak gruplandırılabilir. Toplu işlemler en fazla 256 KB olabilir.

  • IoT Hub rastgele bölümlemeye izin vermez. Cihazdan buluta iletiler, başlangıçtaki DeviceID'lerine göre bölümlendirilir.

  • IoT Hub erişimi denetlemebölümünde açıklandığı gibi, IoT Hub cihaz başına kimlik doğrulaması ve erişim denetimi sağlar.

  • İletileri, uygulama özelliklerine giden bilgilerle damgalamak isteyebilirsiniz. Daha fazla bilgi için lütfen bkz. ileti zenginleştirme.

Farklı protokoller kullanılarak gönderilen iletilerin kodlanması ve kodunun çözülmesi hakkında daha fazla bilgi için bkz. Azure IoT SDK 'ları.

D2C IoT Hub Iletilerinin sistem özellikleri

Özellik Açıklama Kullanıcı ayarlanabilir mi? İçin anahtar sözcük
Yönlendirme sorgusu
ileti kimliği İstek-yanıt desenleri için kullanılan ileti için Kullanıcı tarafından ayarlanabilir bir tanımlayıcı. Biçim: büyük/küçük harfe duyarlı bir dize (en fazla 128 karakter uzunluğunda) ASCII 7 bit alfasayısal karakter + {'-', ':', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '$', '''} . Evet Ileti
ıothub-enqueuedtime Cihazdan buluta mesajın IoT Hub tarafından alındığı tarih ve saat. Hayır enqueuedTime
user-id İletilerin kaynağını belirtmek için kullanılan bir KIMLIK. İletiler IoT Hub tarafından oluşturulduğunda, olarak ayarlanır {iot hub name} . Evet userId
ıothub-bağlantı-cihaz kimliği Cihazdan buluta iletilerde IoT Hub tarafından ayarlanan bir KIMLIK. İletiyi gönderen cihazın DeviceID 'sini içerir. Hayır Connectiondeviceıd
ıothub-Connection-Module-ID Cihazdan buluta iletilerde IoT Hub tarafından ayarlanan bir KIMLIK. İletiyi gönderen cihazın ModuleID 'sini içerir. Hayır Connectionmoduleıd
ıothub-bağlantı-auth-Generation-ID Cihazdan buluta iletilerde IoT Hub tarafından ayarlanan bir KIMLIK. İletiyi gönderen cihazın Connectiondevicegenerationıd 'Sini ( cihaz kimliği başına kimlik özellikleri) içerir. Hayır Connectiondevicegenerationıd
ıothub-Connection-auth-yöntemi Cihazdan buluta iletilerde IoT Hub tarafından ayarlanan bir kimlik doğrulama yöntemi. Bu özellik, iletiyi gönderen cihazın kimliğini doğrulamak için kullanılan kimlik doğrulama yöntemi hakkındaki bilgileri içerir. Hayır connectionAuthMethod
DT-DataSchema Bu değer, cihazdan buluta iletilerde IoT Hub tarafından ayarlanır. Cihaz bağlantısında ayarlanan cihaz modeli KIMLIĞINI içerir. Hayır $dt-DataSchema
DT-konu Cihazdan buluta iletileri gönderen bileşenin adı. Evet $dt-konu

D2C IoT Hub Iletilerinin uygulama özellikleri

Uygulama özelliklerinin yaygın kullanımı, cihaz iothub-creation-time-utc tarafından ileti gönderildiğinde kaydedilecek özelliği kullanarak cihazdan zaman damgası göndermektir. Bu zaman damgasının biçimi, saat dilimi bilgisi olmayan UTC olmalıdır. Örneğin, 2021-04-21T11:30:16Z geçerlidir, 2021-04-21T11:30:16-07:00 geçersiz:

{
  "applicationId":"5782ed70-b703-4f13-bda3-1f5f0f5c678e",
  "messageSource":"telemetry",
  "deviceId":"sample-device-01",
  "schema":"default@v1",
  "templateId":"urn:modelDefinition:mkuyqxzgea:e14m1ukpn",
  "enqueuedTime":"2021-01-29T16:45:39.143Z",
  "telemetry":{
    "temperature":8.341033560421833
  },
  "messageProperties":{
    "iothub-creation-time-utc":"2021-01-29T16:45:39.021Z"
  },
  "enrichments":{}
}

C2D IoT Hub Iletilerinin sistem özellikleri

Özellik Açıklama Kullanıcı ayarlanabilir mi?
ileti kimliği İstek-yanıt desenleri için kullanılan ileti için Kullanıcı tarafından ayarlanabilir bir tanımlayıcı. Biçim: büyük/küçük harfe duyarlı bir dize (en fazla 128 karakter uzunluğunda) ASCII 7 bit alfasayısal karakter + {'-', ':', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '$', '''} . Evet
sıra numarası Her buluttan cihaza ileti için IoT Hub tarafından atanan bir sayı (cihaz kuyruğu başına benzersiz). Hayır
kullanıcısı Buluttan cihaza iletilerde belirtilen hedef. Hayır
mutlak-süre sonu İleti süresinin dolma tarihi ve saati. Evet
correlation-id İstek-yanıt desenlerinde, genellikle isteğin MessageID ' i içeren bir yanıt iletisindeki dize özelliği. Evet
user-id İletilerin kaynağını belirtmek için kullanılan bir KIMLIK. İletiler IoT Hub tarafından oluşturulduğunda, olarak ayarlanır {iot hub name} . Evet
iothub-ack Geri bildirim ileti oluşturucu. Bu özellik, cihazdan cihaza gönderilen iletilerin kullanımı IoT Hub geri bildirim iletileri oluşturma isteğinde IoT Hub için buluttan cihaza iletilerde kullanılır. Olası değerler: hiçbiri (varsayılan): Hiçbir geri bildirim iletisi oluşturulmaz, pozitif: ileti tamamlandı ise bir geri bildirim iletisi alır, negatif: iletinin süresi dolduğunda (veya maksimum teslim sayısına ulaşıldı), cihaz tarafından tamamlanmadan veya tam : hem pozitif hem de negatif olarak bir geri bildirim iletisi alır. Evet

Sistem Özellik Adları

Sistem özelliği adları, iletilerin yönlendirilen uç noktasına göre değişiklik gösterir. Bu adlar hakkında ayrıntılı bilgi için lütfen aşağıdaki tabloya bakın.

Sistem özelliği adı Event Hubs Azure Depolama Service Bus Event Grid
İleti Kimliği message-id Messageıd Messageıd message-id
Kullanıcı kimliği user-id userId UserId user-id
Bağlantı cihazı kimliği iothub-connection-device-id connectionDeviceId iothub-connection-device-id iothub-connection-device-id
Bağlantı modülü kimliği iothub-connection-module-id connectionModuleId iothub-connection-module-id iothub-connection-module-id
Bağlantı kimlik doğrulaması oluşturma kimliği iothub-connection-auth-generation-id connectionDeviceGenerationId iothub-connection-auth-generation-id iothub-connection-auth-generation-id
Connection auth yöntemi iothub-connection-auth-method connectionAuthMethod iothub-connection-auth-method iothub-connection-auth-method
Contenttype content-type Contenttype Contenttype iothub-content-type
Contentencoding content-encoding Contentencoding Contentencoding iothub-content-encoding
iothub-enqueuedtime iothub-enqueuedtime enqueuedTime Yok iothub-enqueuedtime
CorrelationId correlation-id correlationId CorrelationId correlation-id
dt-dataschema dt-dataschema dt-dataschema dt-dataschema dt-dataschema
dt-subject dt-subject dt-subject dt-subject dt-subject

İleti boyutu

IoT Hub, yalnızca gerçek yükü göz önünde bulundurarak protokolden bağımsız bir şekilde ileti boyutunu ölçür. Bayt cinsinden boyut, aşağıdaki değerlerin toplamı olarak hesaplanır:

  • Bayt cinsinden gövde boyutu.
  • İleti sistemi özelliklerinin tüm değerlerinin bayt cinsinden boyutu.
  • Tüm kullanıcı özellik adlarının ve değerlerinin bayt cinsinden boyutu.

Özellik adları ve değerleri ASCII karakterleriyle sınırlıdır, bu nedenle dizelerin uzunluğu bayt cinsinden boyuta eşittir.

Anti-spoofing özellikleri

Cihazdan buluta iletilerde cihaz spolamalarını önlemek IoT Hub tüm iletileri aşağıdaki özelliklerle damgalar:

  • iothub-connection-device-id
  • iothub-connection-auth-generation-id
  • iothub-connection-auth-method

İlk ikisi, Cihaz kimliği özelliklerine göre kaynak cihazın deviceId ve generationId'lerini içerir.

iothub-connection-auth-method özelliği, aşağıdaki özelliklere sahip bir JSON serileştirilmiş nesnesi içerir:

{
  "scope": "{ hub | device }",
  "type": "{ symkey | sas | x509 }",
  "issuer": "iothub"
}

Sonraki adımlar