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 egyéni foglalási szabályzatok az eszköz hasznos adataival segíthetnek kiválasztani egy IoT Hubot egy eszközhöz, vagy beállíthatják a kezdeti ikerpéldányt. 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 hasznos adatait az egyéni foglalá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 hasznos adatainak használata egyéni foglalásban.
Az IoT Plug and Play (PnP) eszközök 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 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 .