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 allokációs házirend webhook például az eszközmodell számához hasonló információkat használhat annak kiválasztásához, hogy melyik IoT Hub-ba legyen üzembe helyezve az eszköz. 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 alábbiakban következnek az opcionális hasznos adatok küldésének gyakori forgatókönyvei:

  • Az egyéni kiosztási szabályzatok az eszköz terhelési adataival segíthetnek kiválasztani egy IoT központot egy eszközhöz tartozóan, vagy beállíthatják a kezdeti digitális ikert. Előfordulhat például, hogy az eszközmodell alapján szeretné lefoglalni az eszközöket. Ebben az esetben úgy konfigurálhatja az eszközt, hogy regisztrálva jelentse a modelladatait. A DPS átadja az eszköz payload-ját az egyedi kiosztási webhooknak. Ezután a webhook eldöntheti, hogy az eszköz melyik IoT Hubra lesz kiépítve az eszközmodell adatai alapján. Szükség esetén a webhook JSON-objektumként is vissza tudja adni az adatokat az eszköznek a webhook válaszában. További információ: Eszköz terhelési adatainak használata egyedi kiosztásban.

  • Az IoT Plug and Play (PnP) eszközök lehet, hogy a hasznos adatok használatával küldhetik el a modellazonosítójukat, amikor regisztrálnak a DPS-ben. Erre a használatra az SDK-ban vagy a mintaadattárakban található PnP-mintákban találhat példákat. Például C# PnP termosztát vagy Node.js PnP hőmérsékletvezérlő.

  • A DPS-sel csatlakozó IoT Central-eszközöknek követniük kell az IoT Plug and Play konvencióinak használatát, és a regisztrációkor el kell küldeniük a modellazonosítójukat. Az IoT Central a modellazonosítóval rendeli hozzá az eszközt a megfelelő eszközsablonhoz. További információkért tekintse meg az eszközök implementálását és az IoT Central ajánlott eljárásait.

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

Amikor az eszköz meghívja a Register Device funkciót a DPS-ben történő regisztrációhoz, további adatokat is tartalmazhat a payload 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 kiosztá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 (újra)regisztrálva van, ami általában az első iotedge config apply futtatásakor 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ó /etc/aziot/config.toml-ból, ahol a payload tulajdonság egy helyi JSON-fájl elérési útjára van beá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, mint 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 .