Sdílet prostřednictvím


Přenos užitečného zatížení mezi zařízeními a DPS

Zařízení, která se registrují v DPS, musí při registraci poskytnout ID registrace a platné přihlašovací údaje (klíče nebo certifikáty X.509). Můžou ale existovat řešení IoT nebo scénáře, ve kterých se ze zařízení vyžaduje více dat. Webhook vlastních zásad přidělování může například použít informace, jako je číslo modelu zařízení, k výběru IoT centra, ke kterému má být zařízení připojeno. Podobně může zařízení vyžadovat v odpovědi na registraci více dat, aby se usnadnila logika na straně klienta. Služba DPS poskytuje možnost pro zařízení odesílat i přijímat volitelnou datovou část při registraci.

Kdy ji použít

Mezi běžné scénáře odesílání volitelných datových částí patří:

  • Vlastní zásady přidělování můžou datovou část zařízení použít k výběru centra IoT pro zařízení nebo nastavit jeho počáteční dvojče. Můžete například chtít přidělit zařízení na základě modelu zařízení. V takovém případě můžete zařízení nakonfigurovat tak, aby při registraci nahlásilo informace o modelu. Služba DPS předá datovou část zařízení do webhooku vlastního přidělení. Pak váš webhook může rozhodnout, do kterého IoT hubu bude zařízení zřízeno, na základě informací o modelu zařízení. V případě potřeby může webhook vracet data zpět do zařízení jako objekt JSON v odpovědi webhooku. Další informace najdete v tématu Použití payloadů zařízení ve vlastní alokaci.

  • Zařízení IoT Plug and Play (PnP)mohou použít datový paket k odeslání ID svého modelu při registraci ve službě DPS (Device Provisioning Service). Příklady tohoto použití najdete v ukázkách PnP v sadě SDK nebo ukázkových úložištích. Například C# PnP termostat nebo Node.js PnP regulátor teploty.

  • Zařízení IoT Central, která se připojují přes DPS, by měla dodržovat konvence technologie Plug and Play IoT a při registraci posílat ID modelu. IoT Central použije ID modelu k přiřazení zařízení ke správné šabloně zařízení. Další informace najdete v tématu Implementace zařízení a osvědčené postupy pro IoT Central.

Zařízení odesílá datový balíček do DPS.

Když vaše zařízení volá Zaregistrovat zařízení, aby se zaregistrovalo ve službě DPS, může do vlastnosti zásilky zahrnout další data. Například následující JSON ukazuje text požadavku na registraci pomocí ověření identity TPM:

{ 
    "registrationId": "mydevice", 
    "tpm": { 
        "endorsementKey": "xxxx-device-endorsement-key-xxxx", 
        "storageRootKey": "xxx-device-storage-root-key-xxxx" 
    }, 
    "payload": { A JSON object that contains your additional data } 
} 

Vlastnost payload musí být objekt JSON a může obsahovat všechna data relevantní pro vaše IoT řešení nebo scénář.

Služba DPS vrací data do zařízení.

Služba DPS může v odpovědi na registraci vracet data zpět do zařízení. V současné době se tato funkce používá výhradně ve scénářích vlastního přidělování. Pokud webhook vlastních zásad přidělování potřebuje zpětně odeslat data do zařízení, může data předat ve formě objektu JSON v odpovědi webhooku. DpS pak tato data předá zpět ve vlastnosti registrationState.payload v odpovědi Register Device. Například následující JSON ukazuje text úspěšné odpovědi pro registraci pomocí ověření identity TPM.

{
   "operationId":"5.316aac5bdc130deb.b1e02da8-xxxx-xxxx-xxxx-7ea7a6b7f550",
   "status":"assigned",
   "registrationState":{
      "registrationId":"my-tpm-device",
      "createdDateTimeUtc":"2022-08-31T22:02:50.5163352Z",
      "assignedHub":"sample-iot-hub-1.azure-devices.net",
      "deviceId":"my-tpm-device",
      "status":"assigned",
      "substatus":"initialAssignment",
      "lastUpdatedDateTimeUtc":"2022-08-31T22:02:50.7370676Z",
      "etag":"xxxx-etag-value-xxxx",
      "tpm": {"authenticationKey": "xxxx-encrypted-authentication-key-xxxxx"},
      "payload": { A JSON object that contains the data returned by the webhook }
   }
}

Vlastnost payload musí být objekt JSON a může obsahovat všechna data relevantní pro vaše IoT řešení nebo scénář.

Podpora SDK

Tato funkce je dostupná v klientských sadách SDK jazyka C, C#, JAVA a Node.js. Další informace o sadách SDK Azure IoT, které jsou k dispozici pro služby IoT Hub a IoT Hub Device Provisioning, najdete v dokumentaci Microsoft Azure IoT SDKs.

Podpora IoT Edge

Od verze 1.4 podporuje IoT Edge odesílání datové části obsažené v souboru JSON. Soubor datové části se načte a odešle službě DPS, když se zařízení (znovu) registruje, což obvykle nastane při prvním spuštění iotedge config apply. Můžete také vynutit jeho znovu přečtení a registraci pomocí příkazu 'reprovision' rozhraní CLI iotedge system reprovision.

Následující příklad je fragment kódu z /etc/aziot/config.toml, kde payload je vlastnost nastavena na cestu k místnímu souboru JSON.

   [provisioning]
   source = "dps"
   global_endpoint = "https://global.azure-devices-provisioning.net"
   id_scope = "0ab1234C5D6"

   # Uncomment to send a custom payload during DPS registration
   payload = { uri = "file:///home/aziot/payload.json" }
 

Datový soubor (v tomto případě /home/aziot/payload.json) může obsahovat libovolný platný json, například:

{
    "modelId": "dtmi:com:example:edgedevice;1"
}

Další kroky