Ćwiczenie — anulowanie aprowizacji rejestracji grupy
W tym ćwiczeniu anulujesz aprowizację pełnej grupy rejestracji, w tym wyrejestrujesz rejestrację z usługi Device Provisioning Service (DPS) i wyrejestrujesz urządzenia z usługi IoT Hub.
Zadanie 1. Wyrejestrowywanie grupy rejestracji z usługi DPS
W tym zadaniu wyrejestrujesz grupę rejestracji z usługi DPS, która wyłącza zarejestrowane urządzenia. Jeśli chcesz tymczasowo wyrejestrować urządzenia, możesz wyłączyć grupę rejestracji. Aby trwale wyrejestrować, usuń grupę rejestracji.
W piaskownicy platformy Azure wyłącz lub usuń grupę rejestracji.
Wyłączyć:
az iot dps enrollment-group update --dps-name dps-$suffix --enrollment-id enrollgroup-sensors --provisioning-status disabled
Usuwanie:
az iot dps enrollment-group delete --dps-name dps-$suffix --enrollment-id enrollgroup-sensors
Jeśli teraz uruchomisz symulowane urządzenie sensor-thl-001, zostanie wyświetlony komunikat o błędzie podobny do tego, co zostało wyświetlone z wyłączoną rejestracją indywidualną.
Uwaga
Jeśli usuniesz grupę rejestracji dla certyfikatu, urządzenia, które mają certyfikat w łańcuchu certyfikatów, nadal mogą być w stanie zarejestrować się, jeśli istnieje inna, włączona grupa rejestracji nadal istnieje dla certyfikatu głównego lub innego certyfikatu pośredniego wyższego w łańcuchu certyfikatów.
Zadanie 2. Wyrejestrowanie urządzeń z usługi IoT Hub
Po usunięciu grupy rejestracji z usługi Device Provisioning Service (DPS) rejestracja urządzenia nadal istnieje w usłudze Azure IoT Hub. Aby w pełni usunąć aprowizę urządzeń, należy również usunąć rejestrację.
W piaskownicy platformy Azure usuń urządzenie z rejestru urządzeń centrum IoT Hub.
az iot hub device-identity delete --hub-name hub-$suffix --device-id sensor-thl-001
Zadanie 3. Potwierdzenie anulowania aprowizacji urządzeń
Po usunięciu rejestracji grupy z usługi Device Provisioning Service i usunięciu urządzenia z rejestru urządzeń usługi Azure IoT Hub urządzenia są w pełni usuwane z rozwiązania.
Przejdź do okna programu Visual Studio Code zawierającego projekt kodu sensor-thl-001-device.
Uruchom aplikację urządzenia symulowanego, wprowadź następujące polecenie:
dotnet run
Zwróć uwagę na wyjątki wymienione podczas próby aprowizacji urządzenia.
Po usunięciu rejestracji grupy i zarejestrowanego urządzenia symulowane urządzenie nie może już być w stanie aprowizować ani nawiązać połączenia. Gdy aplikacja próbuje użyć skonfigurowanego certyfikatu X.509 w celu nawiązania połączenia z usługą DPS, zwraca komunikat o błędzie ProvisioningTransportException .
Found certificate: AFF851ED016CA5AEB71E5749BCBE3415F8CF4F37 CN=sensor-thl-001; PrivateKey: True Using certificate AFF851ED016CA5AEB71E5749BCBE3415F8CF4F37 CN=sensor-thl-001 RegistrationID = sensor-thl-001 ProvisioningClient RegisterAsync . . . Unhandled exception. Microsoft.Azure.Devices.Provisioning.Client.ProvisioningTransportException: {"errorCode":401002,"trackingId":"df969401-c766-49a4-bab7-e769cd3cb585","message":"Unauthorized","timestampUtc":"2019-12-20T21:30:46.6730046Z"} at Microsoft.Azure.Devices.Provisioning.Client.Transport.ProvisioningTransportHandlerAmqp.ValidateOutcome(Outcome outcome) at Microsoft.Azure.Devices.Provisioning.Client.Transport.ProvisioningTransportHandlerAmqp.RegisterDeviceAsync(AmqpClientConnection client, String correlationId, DeviceRegistration deviceRegistration) at Microsoft.Azure.Devices.Provisioning.Client.Transport.ProvisioningTransportHandlerAmqp.RegisterAsync(ProvisioningTransportRegisterMessage message, CancellationToken cancellationToken)
Ukończono rejestrację, konfigurację i anulowanie aprowizacji w ramach cyklu życia urządzeń IoT za pomocą usługi Device Provisioning Service.
Weryfikowanie pracy
Sprawdź, czy grupa rejestracji została wyłączona lub usunięta z usługi DPS.
az iot dps enrollment-group show --dps-name dps-$suffix --enrollment-id enrollgroup-sensors
Jeśli grupa rejestracji jest wyłączona, powinny zostać wyświetlone dane wyjściowe
provisioningStatus
polecenia wyłączone:"provisioningStatus": "disabled"
Jeśli grupa rejestracji zostanie usunięta, powinien zostać wyświetlony komunikat podobny do poniższego.
{'code': 404204, 'message': 'Not Found.', 'trackingId': '3a1badb5-c1db-4dff-a001-69a5e6e252f4'}
Sprawdź, czy czujnik urządzenia thl-001 został wyrejestrowany (usunięty) z centrum IoT.
az iot hub device-identity show --hub-name hub-$suffix --device-id sensor-thl-001
Powinien zostać wyświetlony
DeviceNotFound
komunikat o błędzie podobny do następującego:{'Message': 'ErrorCode:DeviceNotFound;sensor-thl-001', 'ExceptionMessage': 'Tracking ID:06e0221675514160850421f0b3b787a9-G:0-TimeStamp:10/24/2023 16:57:00'}