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.
IoT Hub, protokoller arasında birlikte çalışabilirliği desteklemek için cihaza yönelik tüm protokollerde kullanılabilen yaygın bir mesajlaşma özellikleri kümesi tanımlar. Bu özellikler hem cihazdan buluta iletilerde hem de buluttan cihaza iletilerde kullanılabilir.
Uyarı
Buluttan cihaza mesajlaşma, cihaz ikizleri ve cihaz yönetimi gibi bu makalede bahsedilen özelliklerden bazıları yalnızca IoT Hub'ın standart katmanında kullanılabilir. Temel ve standart/ücretsiz IoT Hub katmanları hakkında daha fazla bilgi için bkz. çözüm için doğru IoT Hub katmanını ve boyutunu seçme.
IoT Hub, akış mesajlaşma düzeni kullanarak cihazdan buluta mesajlaşmayı uygular. IoT Hub'ın cihazdan buluta iletileri, Service Busiletilerine kıyasla Event Hubsolaylarına benzer; bu nedenle hizmetten birden çok okuyucunun okuyabileceği yüksek hacimli olaylar geçer.
IoT Hub iletisi şunlardan oluşur:
Bu makalenin devamında açıklandığı gibi önceden belirlenmiş bir sistem özellikleri kümesi.
Uygulama özellikleri kümesi. İleti gövdesinin seri durumdan çıkarılmasına gerek kalmadan uygulamanın tanımlayıp erişebileceği dize özellikleri sözlüğü. IoT Hub bu özellikleri hiçbir zaman değiştirmez.
Herhangi bir veri türü olabilecek bir ileti gövdesi.
Her cihaz protokolü, ayar özelliklerini farklı şekillerde uygular. Daha fazla bilgi için bkz . MQTT protokolunu kullanarak IoT hub'ı ile iletişim kurma ve AMQP Protokolü kullanarak IoT hub'ınız ile iletişim kurma.
HTTPS protokolünü kullanarak cihazdan buluta iletiler gönderdiğinizde veya buluttan cihaza iletiler gönderdiğinizde, özellik adları ve değerleri yalnızca ASCII alfasayısal karakterler ve artı ! # $ % & ' * + - . ^ _ ` | ~
içerebilir.
IoT Hub ile cihazdan buluta mesajlaşma aşağıdaki özelliklere sahiptir:
Cihazdan buluta iletiler dayanıklıdır ve yedi güne kadar IoT hub'ında varsayılan iletiler/olaylar uç noktasında tutulur.
Cihazdan buluta iletiler en fazla 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, kaynak deviceId'lerine göre bölümlenir.
IoT Hub'a erişimi Microsoft Entra ID kullanarak denetleme bölümünde açıklandığı gibi, IoT Hub cihaz başına kimlik doğrulamasını ve erişim denetimini etkinleştirir.
uygulama özelliklerine giren bilgilerle iletileri damgalayabilirsiniz. Daha fazla bilgi için bkz. Cihazdan buluta IoT Hub iletileri için ileti zenginleştirmeleri.
Uyarı
Her IoT Hub protokolü, verileri özel uç noktalara yönlendirme sırasında dikkate alınan bir ileti içerik türü özelliği sağlar. Verilerinizin hedefte düzgün bir şekilde işlenmesini sağlamak için (örneğin, JSON, Base64 ile kodlanmış ikili veriler yerine ayrıştırılabilir bir dize olarak ele alınıyor), ileti için uygun içerik türünü ve karakter kümesini sağlayın.
İletinizin gövdesini bir IoT Hub yönlendirme sorgusunda kullanmak için, ileti için geçerli bir JSON nesnesi sağlayın ve iletinin içerik türü özelliğini olarak application/json;charset=utf-8
ayarlayın.
Aşağıdaki örnekte geçerli, yönlendirilebilir bir ileti gövdesi gösterilmektedir:
{
"timestamp": "2022-02-08T20:10:46Z",
"tag_name": "spindle_speed",
"tag_value": 100
}
Cihazdan buluta iletilerin sistem özellikleri
Mülk | Açıklama | Kullanıcı Ayarlanabilir mi? | Yönlendirme sorgusu için anahtar sözcük |
---|---|---|---|
ileti kimliği | İstek-yanıt şablonları için kullanılan iletiye yönelik kullanıcı tarafından ayarlanabilir bir tanımlayıcı. Biçim: Büyük/küçük harfe duyarlı, en fazla 128 karakter uzunluğunda olan bir ASCII 7 bit alfanümerik karakterler dizisi ve - : . + % _ # * ? ! ( ) , = @ ; $ ' . |
Evet | mesajKimliği |
iothub-enqueuedtime | IoT Hub'ın cihazdan buluta iletisini aldığı tarih ve saat. | Hayır | enqueuedTime |
kullanıcı kimliği | İletilerin kaynağını belirtmek için kullanılan kimlik. | Evet | userId (kullanıcı kimliği) |
iothub-bağlantı-cihaz-id | Cihazdan buluta iletilerde IoT Hub tarafından ayarlanan bir kimlik. İletiyi gönderen cihazın deviceId değerini içerir. | Hayır | bağlantıCihazKimliği |
iothub-connection-module-id (IoT Hub bağlantı modül kimliği) | Cihazdan buluta iletilerde IoT Hub tarafından ayarlanan bir kimlik. İletiyi gönderen cihazın moduleId değerini içerir. | Hayır | bağlantıModülüId |
iothub-bağlantı-dogrulama-üretim-id | Cihazdan buluta iletilerde IoT Hub tarafından ayarlanan bir kimlik. İletiyi gönderen cihazın connectionDeviceGenerationId değerini (Cihaz kimliği özelliklerine göre) içerir. | Hayır | bağlantıCihazNesilId |
iothub-bağlantı-kimlik-doğrulama-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ında bilgi içerir. | Hayır | bağlantıKimlikDoğrulamaYöntemi |
iothub-app-iothub-oluşturulma-zamanı-utc | Bir toplu işlemde veri gönderirken cihazın olay oluşturma süresi göndermesine izin verir. | Evet | oluşturma-zamanı-utc |
iothub-creation-time-utc (iothub oluşturma zamanı UTC) | Cihazın bir kerede bir ileti gönderirken olay oluşturma zamanı göndermesine izin verir. | Evet | oluşturma-zamanı-utc |
dt-veri şeması | IoT hub'ı bu değeri cihazdan buluta iletilerde ayarlar. Cihaz bağlantısında ayarlanan cihaz modeli kimliğini içerir. | Hayır | $dt-dataschema |
konu başlığı | Cihazdan buluta iletileri gönderen bileşenin adı. | Evet | $dt-konu |
Cihazdan buluta iletilerin uygulama özellikleri
Uygulama özelliklerinin yaygın kullanımlarından biri, cihazın iletiyi gönderdiği zamanı kaydetmek için iothub-creation-time-utc
özelliğini kullanarak cihazdan bir zaman damgası göndermektir. Bu zaman damgasının biçimi saat dilimi bilgisi olmadan UTC olmalıdır. Örneğin, 2021-04-21T11:30:16Z
geçerli, ancak 2021-04-21T11:30:16-07:00
geçersiz.
{
"applicationId":"00001111-aaaa-2222-bbbb-3333cccc4444",
"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":{}
}
Buluttan cihaza iletilerin sistem özellikleri
Mülk | Açıklama | Kullanıcı Ayarlanabilir mi? |
---|---|---|
ileti kimliği | İstek-yanıt şablonları için kullanılan iletiye yönelik kullanıcı tarafından ayarlanabilir bir tanımlayıcı. Biçim: Büyük/küçük harfe duyarlı, en fazla 128 karakter uzunluğunda olan bir ASCII 7 bit alfanümerik karakterler dizisi ve - : . + % _ # * ? ! ( ) , = @ ; $ ' . |
Evet |
sıra numarası | IoT Hub tarafından her bir bulut-cihaz mesajına atanan ve cihaz kuyruğu başına benzersiz olan bir sayı. | Hayır |
için | Buluttan cihaza iletilerde belirtilen hedef. | Hayır |
mutlak süre sonu tarihi | İletinin sona erme tarihi ve saati. | Evet |
korelasyon kimliği | İstek-yanıt desenlerinde genellikle isteğin MessageId değerini içeren bir yanıt iletisindeki dize özelliği. | Evet |
kullanıcı kimliği | İletilerin kaynağını belirtmek için kullanılan kimlik. IoT Hub ileti oluşturduğunda, kullanıcı kimliği IoT hub adıdır. | Evet |
iothub-ack | Geri bildirim iletisi oluşturucu. Bu özellik, cihaz tarafından iletinin kullanılması sonucunda IoT Hub'dan geri bildirim iletileri oluşturmasını istemek için buluttan cihaza iletilerde kullanılır. Olası değerler: hiçbiri (varsayılan): hiçbir geri bildirim iletisi oluşturulmaz, pozitif: İleti tamamlandıysa geri bildirim iletisi alın, negatif: cihaz tarafından tamamlanmadan iletinin süresi dolduysa (veya teslim sayısı üst sınırına ulaşıldıysa) geri bildirim iletisi alın veya hem pozitif hem de negatif. | Evet |
Sistem özellik adları
Sistem özellik adları, iletilerin yönlendirildiği uç noktaya göre değişir.
Sistem özellik adı | Event Hubs | Azure Depolama | Hizmet Otobüsü | Etkinlik Ağı |
---|---|---|---|---|
İleti Kimliği | ileti kimliği | mesajKimliği | MesajKimliği | ileti kimliği |
Kullanıcı kimliği | kullanıcı kimliği | userId (kullanıcı kimliği) | Kullanıcı Kimliği | kullanıcı kimliği |
Bağlantı cihazı kimliği | iothub-bağlantı-cihaz-id | bağlantıCihazKimliği | iothub-bağlantı-cihaz-id | iothub-bağlantı-cihaz-id |
Bağlantı modülü kimliği | iothub-connection-module-id (IoT Hub bağlantı modül kimliği) | bağlantıModülüId | iothub-connection-module-id (IoT Hub bağlantı modül kimliği) | iothub-connection-module-id (IoT Hub bağlantı modül kimliği) |
Bağlantı kimlik doğrulama oluşturma kimliği | iothub-connection-auth-generation-id | bağlantıCihazNesilId | iothub-connection-auth-generation-id | iothub-connection-auth-generation-id |
Bağlantı kimlik doğrulama yöntemi | iothub-bağlantı-kimlik-doğrulama-yöntemi | bağlantıKimlikDoğrulamaYöntemi | iothub-bağlantı-kimlik-doğrulama-yöntemi | iothub-bağlantı-kimlik-doğrulama-yöntemi |
içerikTürü | içerik türü | içerikTürü | İçerik Türü | iothub-içerik-tipi |
içerik kodlaması | içerik kodlama | içerik kodlaması | İçerik Kodlaması | iothub-içerik-kodlama |
iothub-enqueuedtime | iothub-enqueuedtime | enqueuedTime | Yok | iothub-enqueuedtime |
CorrelationId | korelasyon kimliği | correlationId | CorrelationId | korelasyon kimliği |
dt-veri şeması | dt-veri şeması | dt-veri şeması | dt-veri şeması | dt-veri şeması |
dt-subject | dt-subject | dt-subject | dt-subject | Konu Başlığı |
İleti boyutu
IoT Hub, ileti boyutunu yalnızca gerçek yükü dikkate alarak protokolden bağımsız bir şekilde ölçer. Bayt cinsinden boyut, aşağıdaki değerlerin toplamı olarak hesaplanır:
- Bayt cinsinden veri 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 karakterlerle sınırlıdır, bu nedenle dizelerin uzunluğu bayt cinsinden boyuta eşit olur.
Kimlik sahtekarlığına karşı koruma özellikleri
Cihazdan buluta iletilerde cihaz sahtekarlığına neden olmaması için IoT Hub tüm iletileri aşağıdaki özelliklerle damgalar:
- iothub-connection-device-id
- iothub-connection-auth-generation-id
- iothub-bağlantısı-kimlik-doğrulama-yöntemi
İlk ikisi, Cihaz kimliği özelliklerine göre kaynak cihazın deviceId ve generationId değerini içerir.
iothub-connection-auth-method özelliği, aşağıdaki özelliklere sahip bir JSON serileştirilmiş nesnesi içerir:
{
"scope": "{ hub | device | module }",
"type": "{ symkey | sas | x509 }",
"issuer": "iothub"
}
Sonraki adımlar
- IoT Hub'daki ileti boyutu sınırları hakkında bilgi için bkz IoT Hub kotaları ve kısıtlama.
- Çeşitli programlama dillerinde IoT Hub iletileri oluşturmayı ve okumayı öğrenmek için bkz . Öğretici: IoT Tak Çalıştır cihazından Azure IoT Hub'a telemetri gönderme.
- IoT Hub tarafından oluşturulan telemetri dışı olayların yapısı hakkında bilgi edinmek için bkz. Azure IoT Hub telemetri dışı olay şemaları.