Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Urządzenia rejestrujące się w usłudze DPS muszą podać identyfikator rejestracji i prawidłowe poświadczenia (klucze lub certyfikaty X.509) podczas rejestracji. Mogą jednak istnieć rozwiązania IoT lub scenariusze, w których z urządzenia jest potrzebnych więcej danych. Na przykład niestandardowy webhook polityki alokacji może używać informacji, takich jak numer modelu urządzenia, aby wybrać IoT Hub w celu aprowizacji urządzenia. Podobnie urządzenie może wymagać większej ilości danych w odpowiedzi na rejestrację, aby ułatwić logikę po stronie klienta. Usługa DPS umożliwia urządzeniom wysyłanie i odbieranie opcjonalnego ładunku podczas rejestrowania.
Kiedy go używać
Typowe scenariusze wysyłania opcjonalnych ładunków to:
Niestandardowe zasady alokacji mogą używać ładunku urządzenia w celu ułatwienia wyboru centrum IoT dla urządzenia lub ustawienia jego początkowej reprezentacji bliźniaczej. Możesz na przykład przydzielić urządzenia na podstawie modelu urządzenia. W takim przypadku można skonfigurować urządzenie, aby przekazywało informacje o modelu podczas rejestracji. Usługa DPS przekazuje ładunek urządzenia do niestandardowego elementu webhook alokacji. Następnie webhook może zdecydować, do którego centrum IoT przydzielone jest urządzenie, na podstawie informacji o modelu urządzenia. W razie potrzeby element webhook może również zwracać dane z powrotem do urządzenia jako obiekt JSON w odpowiedzi elementu webhook. Aby dowiedzieć się więcej, zobacz Używanie ładunków urządzeń w ramach alokacji niestandardowej.
Urządzenia IoT Plug and Play (PnP)mogą używać ładunku do wysyłania identyfikatora modelu podczas rejestrowania się w usłudze DPS. Przykłady tego użycia można znaleźć w przykładach pnP w zestawie SDK lub przykładowych repozytoriach. Na przykład C# PnP termostat lub Node.js PnP kontroler temperatury.
Urządzenia usługi IoT Central , które łączą się za pośrednictwem usługi DPS , powinny przestrzegaćkonwencji IoT Plug and Play i wysyłać identyfikator modelu podczas rejestrowania. Usługa IoT Central używa identyfikatora modelu do przypisania urządzenia do odpowiedniego szablonu urządzenia. Aby dowiedzieć się więcej, zobacz Implementacja urządzeń i najlepsze rozwiązania dotyczące usługi IoT Central.
Urządzenie wysyła ładunek danych do usługi DPS
Gdy urządzenie wywołuje metodę Zarejestruj urządzenie w celu zarejestrowania w usłudze DPS, może wprowadzać więcej danych we właściwości payload. Na przykład poniższy kod JSON przedstawia treść żądania zarejestrowania przy użyciu zaświadczania 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 }
}
Właściwość payload musi być obiektem JSON i może zawierać dowolne dane istotne dla twojego rozwiązania lub scenariusza IoT.
Usługa DPS zwraca dane do urządzenia
DPS może zwracać dane do urządzenia w odpowiedzi na rejestrację. Obecnie ta funkcja jest używana wyłącznie w niestandardowych scenariuszach alokacji. Jeśli webhook niestandardowej polityki alokacji musi wysyłać dane do urządzenia, może przesłać te dane jako obiekt JSON w odpowiedzi webhooka. Następnie usługa DPS przekazuje te dane z powrotem do właściwości registrationState.payload w odpowiedzi Rejestrowanie urządzenia. Na przykład poniższy kod JSON przedstawia treść pomyślnej odpowiedzi na rejestrację przy użyciu zaświadczania 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 }
}
}
Właściwość payload musi być obiektem JSON i może zawierać dowolne dane istotne dla twojego rozwiązania lub scenariusza IoT.
Pomoc techniczna SDK
Ta funkcja jest dostępna w zestawach SDK klienta C, C#, JAVA i Node.js. Aby dowiedzieć się więcej na temat zestawów SDK usługi Azure IoT dostępnych dla usług IoT Hub i IoT Hub Device Provisioning, zobacz Zestawy SDK usługi Microsoft Azure IoT.
Obsługa usługi IoT Edge
Począwszy od wersji 1.4, usługa IoT Edge obsługuje wysyłanie ładunku danych zawartego w pliku JSON. Plik ładunku jest odczytywany i wysyłany do usługi DPS, gdy urządzenie jest (ponownie zarejestrowane), co zwykle występuje po iotedge config apply uruchomieniu po raz pierwszy. Można również wymusić ponowne odczytanie i zarejestrowanie za pomocą polecenia iotedge system reprovisionrekonfiguracji interfejsu wiersza polecenia.
Poniższy przykład to fragment kodu z /etc/aziot/config.toml, w którym właściwość payload jest ustawiona na ścieżkę lokalnego pliku 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" }
Plik ładunku (w tym przypadku /home/aziot/payload.json) może zawierać dowolny prawidłowy kod JSON, taki jak:
{
"modelId": "dtmi:com:example:edgedevice;1"
}
Następne kroki
Aby zapoznać się z omówieniem niestandardowych zasad alokacji, zobacz Omówienie niestandardowych zasad alokacji za pomocą usługi Azure IoT Hub Device Provisioning Service.
Aby dowiedzieć się, jak aprowizować urządzenia przy użyciu niestandardowych zasad alokacji, zobacz Samouczek: używanie niestandardowych zasad alokacji z usługą Device Provisioning Service (DPS).