Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pro podporu interoperability mezi protokoly ioT Hub definuje společnou sadu funkcí zasílání zpráv, které jsou k dispozici ve všech protokolech přístupných zařízením. Tyto funkce je možné použít jak ve zprávách typu zařízení-cloud, tak ve zprávách typu cloud-zařízení.
Poznámka:
Některé funkce uvedené v tomto článku, jako je zasílání zpráv z cloudu do zařízení, dvojčata zařízení a správa zařízení, jsou k dispozici ve službě IoT Hub pouze na úrovni Standard. Další informace o úrovních Basic a Standard/Free IoT Hub najdete v tématu Volba správné úrovně a velikosti služby IoT Hub pro vaše řešení.
IoT Hub implementuje zasílání zpráv typu zařízení-cloud pomocí vzoru streamování zpráv. Zprávy typu zařízení-cloud ve službě IoT Hub jsou více podobné událostemEvent Hubs než zprávámService Bus, protože službou prochází velký objem událostí, které může číst více čtenářů.
Zpráva ioT Hubu se skládá z:
Předem stanovená sada vlastností systému, jak je popsáno dále v tomto článku.
Sada vlastností aplikace. Slovník vlastností řetězce, ke kterým může aplikace definovat a přistupovat, aniž by bylo nutné deserializovat text zprávy. IoT Hub tyto vlastnosti nikdy neupravuje.
Text zprávy, který může být libovolný typ dat.
Každý protokol zařízení implementuje vlastnosti nastavení různými způsoby. Další informace najdete v tématu Komunikace se službou IoT Hub pomocí protokolu MQTT a komunikace s centrem IoT pomocí protokolu AMQP.
Při odesílání zpráv z zařízení do cloudu pomocí protokolu HTTPS nebo odesílání zpráv z cloudu do zařízení mohou názvy a hodnoty vlastností obsahovat pouze alfanumerické znaky ASCII a navíc ! # $ % & ' * + - . ^ _ ` | ~.
Zasílání zpráv ze zařízení do cloudu se službou IoT Hub má následující charakteristiky:
Zprávy typu zařízení-cloud jsou trvalé a uchovávají se ve výchozím koncovém bodu zpráv a událostí služby IoT Hub po dobu až sedmi dnů.
Zprávy typu zařízení-cloud mohou mít maximálně 256 kB a lze je seskupit do dávek pro lepší optimalizaci odesílání. Dávky můžou mít maximálně 256 kB.
IoT Hub neumožňuje libovolné dělení. Zprávy zařízení-do-cloudu jsou rozdělovány podle jejich původního ID zařízení.
Jak je vysvětleno v tématu Řízení přístupu ke službě IoT Hub pomocí ID Microsoft Entra, IoT Hub umožňuje ověřování podle zařízení a řízení přístupu.
Zprávy můžete opatřit informacemi, které se stanou součástí vlastností aplikace. Další informace najdete v tématu Rozšiřování zpráv pro zprávy IoT Hubu typu zařízení-do-cloudu.
Poznámka:
Každý protokol IoT Hubu poskytuje vlastnost typu obsahu zprávy, která se respektuje při směrování dat do vlastních koncových bodů. Pokud chcete, aby data správně zpracovala v cíli (například JSON, který se považuje za parsovatelný řetězec místo binárních dat s kódováním Base64), zadejte odpovídající typ obsahu a znakovou sadu pro zprávu.
Chcete-li použít text zprávy ve směrovacím dotazu služby IoT Hub, zadejte platný objekt JSON zprávy a nastavte vlastnost typu obsahu zprávy na application/json;charset=utf-8.
Následující příklad ukazuje platný směrovatelný text zprávy:
{
"timestamp": "2022-02-08T20:10:46Z",
"tag_name": "spindle_speed",
"tag_value": 100
}
Systémové vlastnosti zpráv z zařízení do cloudu
| Vlastnost | Popis | Nastavitelné uživatelem? | Klíčové slovo pro směrovací dotaz |
|---|---|---|---|
| message-id (ID zprávy) | Identifikátor uživatelem nastavený pro zprávu použitou pro vzory žádosti a odpovědi. Formát: Řetězec s rozlišením malých a velkých písmen obsahující 7bitové alfanumerické znaky ASCII, maximálně 128 znaků, plus - : . + % _ # * ? ! ( ) , = @ ; $ '. |
Ano | ID zprávy |
| iothub-enqueuedtime | Datum a čas, kdy IoT Hub obdrží zprávu zařízení na cloud. | Ne | enqueuedTime |
| ID uživatele | ID použité k určení původu zpráv. | Ano | ID uživatele |
| iothub-připojení-id-zařízení | ID nastavené službou IoT Hub na zprávách od zařízení k cloudu. Obsahuje ID zařízení , které zprávu odeslalo. | Ne | ID_připojovacího_zařízení |
| Identifikátor modulu připojení iothub | ID nastavené službou IoT Hub na zprávách od zařízení k cloudu. Obsahuje id modulu zařízení, které zprávu odeslalo. | Ne | idModuluPřipojení |
| iothub-connection-auth-generation-id | ID nastavené službou IoT Hub na zprávách od zařízení k cloudu. Obsahuje connectionDeviceGenerationId (podle vlastností identity zařízení) zařízení, které zprávu odeslalo. | Ne | identifikátorGeneracePřipojovacíhoZařízení |
| iothub-připojení-metoda-autentizace | Metoda ověřování nastavená službou IoT Hub ve zprávách mezi zařízeními a cloudem Tato vlastnost obsahuje informace o metodě ověřování použité k ověření zařízení odesílajícího zprávu. | Ne | metoda ověřování připojení |
| iothub-app-iothub-čas-vytvoření-utc | Umožňuje zařízení odesílat čas vytvoření události, když odesílá data v dávce. | Ano | čas vytvoření (UTC) |
| čas-vytvoření-iothub-utc | Umožňuje zařízení odesílat čas vytvoření události při odesílání jedné zprávy najednou. | Ano | čas vytvoření (UTC) |
| dt-dataschema | IoT Hub nastaví tuto hodnotu u zpráv ze zařízení do cloudu. Obsahuje ID modelu zařízení nastavené v připojení zařízení. | Ne | $dt-dataschema |
| dt-předmět | Název komponenty, která odesílá zprávy z zařízení do cloudu. | Ano | $dt předmět |
Vlastnosti aplikace zpráv z zařízení do cloudu
Běžným použitím vlastností aplikace je odeslání časového razítka ze zařízení pomocí iothub-creation-time-utc vlastnosti k zaznamenání, když zařízení odešle zprávu. Formát tohoto časového razítka musí být UTC bez informací o časovém pásmu. Je například 2021-04-21T11:30:16Z platný, ale 2021-04-21T11:30:16-07:00 je neplatný.
{
"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":{}
}
Systémové vlastnosti zpráv z cloudu na zařízení
| Vlastnost | Popis | Nastavitelné uživatelem? |
|---|---|---|
| message-id (ID zprávy) | Identifikátor uživatelem nastavený pro zprávu použitou pro vzory žádosti a odpovědi. Formát: Řetězec s rozlišením malých a velkých písmen obsahující 7bitové alfanumerické znaky ASCII, maximálně 128 znaků, plus - : . + % _ # * ? ! ( ) , = @ ; $ '. |
Ano |
| pořadové číslo | Číslo (jedinečné pro zařízení ve frontě) přiřazené IoT Hubem ke každé zprávě z cloudu do zařízení. | Ne |
| na | Cíl zadaný ve zprávách typu z cloudu do zařízení. | Ne |
| absolutní doba vypršení platnosti | Datum a čas vypršení platnosti zprávy | Ano |
| ID korelace | Vlastnost řetězce ve zprávě odpovědi, která obvykle obsahuje MessageId požadavku ve vzorcích žádost-odpověď. | Ano |
| ID uživatele | ID použité k určení původu zpráv. Když IoT Hub generuje zprávy, ID uživatele je název centra IoT. | Ano |
| iothub-ack | Generátor zpráv zpětné vazby. Tato vlastnost se používá ve zprávách typu cloud-zařízení k vyžádání, aby IoT Hub vygeneroval zprávy zpětné vazby po spotřebování zprávy zařízením. Možné hodnoty: žádné (výchozí): nevygeneruje se žádná zpráva zpětné vazby, pozitivní: pokud byla zpráva dokončena, negativní: obdrží zprávu zpětné vazby, pokud vypršela platnost zprávy (nebo byl dosažen maximální počet doručení), aniž by zařízení dokončilo, nebo úplné: kladné i záporné. | Ano |
Názvy systémových vlastností
Názvy systémových vlastností se liší v závislosti na koncovém bodu, do kterého se zprávy směrují.
| Název systémové vlastnosti | Centra událostí | Azure Storage | Sběrnice | Event Grid |
|---|---|---|---|---|
| ID zprávy | message-id (ID zprávy) | ID zprávy | ID zprávy | message-id (ID zprávy) |
| ID uživatele | ID uživatele | ID uživatele | ID uživatele | ID uživatele |
| ID zařízení připojení | iothub-připojení-id-zařízení | ID_připojovacího_zařízení | iothub-připojení-id-zařízení | iothub-připojení-id-zařízení |
| ID modulu připojení | Identifikátor modulu připojení iothub | idModuluPřipojení | Identifikátor modulu připojení iothub | Identifikátor modulu připojení iothub |
| Identifikátor generace ověřování připojení | iothub-connection-auth-generation-id | identifikátorGeneracePřipojovacíhoZařízení | iothub-connection-auth-generation-id | iothub-connection-auth-generation-id |
| Metoda ověřování připojení | iothub-připojení-metoda-autentizace | metoda ověřování připojení | iothub-připojení-metoda-autentizace | iothub-připojení-metoda-autentizace |
| typObsahu | typ obsahu | typObsahu | typ obsahu | iothub-content-type |
| způsob kódování obsahu | kódování obsahu | způsob kódování obsahu | Kódování obsahu | iothub-kódování-obsahu |
| iothub-enqueuedtime | iothub-enqueuedtime | enqueuedTime | – | iothub-enqueuedtime |
| Identifikátor korelace | ID korelace | identifikátor korelace | Identifikátor korelace | ID korelace |
| dt-dataschema | dt-dataschema | dt-dataschema | dt-dataschema | dt-dataschema |
| dt-předmět | dt-předmět | dt-předmět | dt-předmět | dt-předmět |
Velikost zprávy
IoT Hub měří velikost zpráv způsobem nezávislým na protokolu, přičemž zohledňuje pouze skutečnou datovou část. Velikost v bajtech se vypočítá jako součet následujících hodnot:
- Velikost těla v bajtech.
- Velikost v bajtech všech hodnot vlastností systému zpráv.
- Velikost v bajtech všech názvů a hodnot uživatelských vlastností.
Názvy a hodnoty vlastností jsou omezeny na znaky ASCII, takže délka řetězců se rovná velikosti v bajtech.
Vlastnosti proti-falšování
Aby se zabránilo falšování identity zařízení v komunikaci zařízení s cloudem, IoT Hub označí všechny zprávy následujícími vlastnostmi:
- iothub-connection-device-id
- iothub-connection-auth-generation-id
- metoda autentizace připojení iothub
První dva obsahují id zařízení a generationId původního zařízení podle vlastností identity zařízení.
Vlastnost iothub-connection-auth-method obsahuje serializovaný objekt JSON s následujícími vlastnostmi:
{
"scope": "{ hub | device | module }",
"type": "{ symkey | sas | x509 }",
"issuer": "iothub"
}
Další kroky
- Informace o omezeních velikosti zpráv ve službě IoT Hub najdete v tématu Kvóty a omezování služby IoT Hub.
- Informace o vytváření a čtení zpráv IoT Hubu v různých programovacích jazycích najdete v kurzu: Odesílání telemetrických dat ze zařízení IoT Plug and Play do Azure IoT Hubu.
- Další informace o struktuře událostí mimo telemetrii generovaných službou IoT Hub najdete v tématu Schémata událostí mimo telemetrii služby Azure IoT Hub.