Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Apparaten die zich bij DPS registreren, moeten een registratie-id en geldige referenties (sleutels of X.509-certificaten) opgeven wanneer ze zich registreren. Er kunnen echter IoT-oplossingen of scenario's zijn waarin meer gegevens van het apparaat nodig zijn. Een webhook voor aangepast toewijzingsbeleid kan bijvoorbeeld informatie zoals een apparaatmodelnummer gebruiken om een IoT-hub te selecteren om het apparaat in te richten. Op dezelfde manier vereist een apparaat mogelijk meer gegevens in het registratieantwoord om de logica aan de clientzijde te vergemakkelijken. DPS biedt de mogelijkheid voor apparaten om zowel een optionele nettolading te verzenden als te ontvangen wanneer ze zich registreren.
Wanneer te gebruiken
Veelvoorkomende scenario's voor het verzenden van optionele payloads zijn:
Aangepaste toewijzingsbeleidsregels kunnen de payload van het apparaat gebruiken om een IoT-hub voor een apparaat te selecteren of de initiƫle tweeling in te stellen. U kunt bijvoorbeeld uw apparaten toewijzen op basis van het apparaatmodel. In dit geval kunt u het apparaat configureren om de modelgegevens te rapporteren wanneer het wordt geregistreerd. DPS geeft de payload van het apparaat door aan de aangepaste toewijzing-webhook. Vervolgens kan uw webhook bepalen voor welke IoT-hub het apparaat is ingericht op basis van de gegevens van het apparaatmodel. Indien nodig kan de webhook ook gegevens retourneren naar het apparaat als een JSON-object in het antwoord van de webhook. Zie Hoe u nettovracht van apparaten kunt gebruiken in een aangepaste toewijzing voor meer informatie.
IoT Plug and Play-apparaten (PnP)kunnen de payload gebruiken om hun Model-ID te verzenden wanneer ze zich registreren bij DPS. Voorbeelden van dit gebruik vindt u in de PnP-voorbeelden in de SDK of voorbeeldopslagplaatsen. Bijvoorbeeld C# PnP-thermostaat of Node.js PnP-temperatuurregelaar.
IoT Central-apparaten die verbinding maken via DPS, moeten voldoen aan de Conventies van IoT Plug en Play en hun model-id verzenden wanneer ze zich registreren. IoT Central gebruikt de model-id om het apparaat toe te wijzen aan de juiste apparaatsjabloon. Zie Apparaatimplementatie en aanbevolen procedures voor IoT Central voor meer informatie.
Apparaat verzendt nettolading van gegevens naar DPS
Wanneer uw apparaat Apparaat registreren aanroept om te registreren bij DPS, kan het meer data bevatten in de payload-eigenschap. In de volgende JSON ziet u bijvoorbeeld de hoofdtekst voor een aanvraag voor het registreren met behulp van TPM-attestation:
{
"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 }
}
De payload-eigenschap moet een JSON-object zijn en kan alle gegevens bevatten die relevant zijn voor uw IoT-oplossing of -scenario.
DPS retourneert gegevens naar het apparaat
DPS kan gegevens terugsturen naar het apparaat in het registratieantwoord. Deze functie wordt momenteel uitsluitend gebruikt in aangepaste toewijzingsscenario's. Als de webhook van het aangepaste toewijzingsbeleid gegevens naar het apparaat moet retourneren, kunnen de gegevens als een JSON-object worden doorgegeven in het antwoord van de webhook. DPS geeft die gegevens vervolgens weer door in de eigenschap registrationState.payload in het antwoord Apparaat registreren. Een voorbeeld van een succesvolle respons bij registratie met behulp van TPM-attestatie wordt weergegeven in de volgende JSON.
{
"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 }
}
}
De payload-eigenschap moet een JSON-object zijn en kan alle gegevens bevatten die relevant zijn voor uw IoT-oplossing of -scenario.
SDK-ondersteuning
Deze functie is beschikbaar in C,C#, JAVA en Node.js client-SDK's. Zie Microsoft Azure IoT SDK's voor meer informatie over de Azure IoT SDK's die beschikbaar zijn voor IoT Hub en IoT Hub Device Provisioning Service.
IoT Edge-ondersteuning
Vanaf versie 1.4 ondersteunt IoT Edge het verzenden van een nettolading van gegevens in een JSON-bestand. Het payloadbestand wordt gelezen en verzonden naar DPS wanneer het apparaat (opnieuw) is geregistreerd, wat meestal gebeurt wanneer u iotedge config apply voor het eerst uitvoert. U kunt ook afdwingen dat deze opnieuw wordt gelezen en geregistreerd met behulp van de opdracht iotedge system reprovisionvoor opnieuw inrichten van de CLI.
Het volgende voorbeeld is een fragment van /etc/aziot/config.toml, waar de payload eigenschap is ingesteld op het pad van een lokaal JSON-bestand.
[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" }
Het nettoladingbestand (in dit geval /home/aziot/payload.json) kan een geldige JSON bevatten, zoals:
{
"modelId": "dtmi:com:example:edgedevice;1"
}
Volgende stappen
Zie Aangepast toewijzingsbeleid begrijpen met Azure IoT Hub Device Provisioning Service voor een overzicht van aangepast toewijzingsbeleid.
Zie Zelfstudie: Aangepast toewijzingsbeleid gebruiken met Device Provisioning Service (DPS) voor meer informatie over het inrichten van apparaten met een aangepast toewijzingsbeleid.