Megosztás a következőn keresztül:


Hasznos adatok átvitele az eszközök és a DPS között

A DPS-ben regisztráló eszközöknek regisztrációs azonosítót és érvényes hitelesítő adatokat (kulcsokat vagy X.509-tanúsítványokat) kell megadniuk a regisztrációkor. Lehetnek azonban olyan IoT-megoldások vagy forgatókönyvek, amelyekben további adatokra van szükség az eszközről. Egy egyéni foglalási szabályzat webhook például az eszközmodell számához hasonló információkat használhat egy IoT Hub kiválasztásához az eszköz üzembe helyezéséhez. Hasonlóképpen előfordulhat, hogy egy eszköz további adatokat igényel a regisztrációs válaszban az ügyféloldali logika megkönnyítése érdekében. A DPS lehetővé teszi az eszközök számára, hogy regisztrálva is elküldhessenek és megkapjanak egy opcionális hasznos adatcsomagot.

Mikor lehet használni

Az opcionális hasznos adatok küldésének gyakori forgatókönyvei a következők:

Az eszköz adatokat küld a DPS-nek

Amikor az eszköz meghívja az Eszköz regisztrálását a DPS-ben való regisztrációhoz, az további adatokat is tartalmazhat a hasznos adat tulajdonságban. Az alábbi JSON például a TPM-igazolással való regisztrálásra irányuló kérelem törzsét mutatja be:

{ 
    "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 } 
} 

A hasznos adattulajdonságnak JSON-objektumnak kell lennie, és az IoT-megoldással vagy -forgatókönyvvel kapcsolatos adatokat tartalmazhat.

A DPS adatokat ad vissza az eszköznek

A DPS vissza tudja adni az adatokat az eszköznek a regisztrációs válaszban. Ezt a funkciót jelenleg kizárólag egyéni foglalási forgatókönyvekben használják. Ha az egyéni foglalási szabályzat webhookának adatokat kell visszaadnia az eszköznek, JSON-objektumként továbbíthatja az adatokat a webhook válaszában. A DPS ezt követően vissza fogja adni ezeket az adatokat a registrationState.payload tulajdonságban az Eszköz regisztrálása válaszban. A következő JSON például egy sikeres válasz törzsét mutatja be a TPM-igazolással való regisztrációhoz.

{
   "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 }
   }
}

A hasznos adattulajdonságnak JSON-objektumnak kell lennie, és az IoT-megoldással vagy -forgatókönyvvel kapcsolatos adatokat tartalmazhat.

SDK-támogatás

Ez a funkció C, C#, JAVA és Node.js ügyféloldali SDK-kban érhető el. Az IoT Hubhoz és az IoT Hub Device Provisioning service-hez elérhető Azure IoT SDK-król további információt a Microsoft Azure IoT SDK-kban talál.

IoT Edge-támogatás

Az IoT Edge az 1.4-es verziótól kezdve támogatja a JSON-fájlban található adattartalom küldését. A rendszer beolvassa és elküldi a hasznos adatfájlt a DPS-nek, amikor az eszköz regisztrálva van (újra), ami általában az első futtatáskor iotedge config apply történik. Azt is kényszerítheti, hogy újraolvassák és regisztrálják a parancssori felület újraépítési parancsával iotedge system reprovision.

Az alábbiakban egy példarészlet látható, amelyből /etc/aziot/config.toml a payload tulajdonság egy helyi JSON-fájl elérési útjára van állítva.

   [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" }
 

A hasznos adatfájl (ebben az esetben /home/aziot/payload.json) bármilyen érvényes JSON-t tartalmazhat, például:

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

Következő lépések

  • Az egyéni foglalási szabályzatok áttekintéséért lásd : Az egyéni foglalási szabályzatok ismertetése

  • Az eszközök egyéni foglalási szabályzatok használatával történő kiépítéséről az Egyéni foglalási szabályzatok használata című témakörben olvashat .