Ćwiczenie — anulowanie aprowizacji rejestracji grupy

Ukończone

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.

  1. 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ę.

  1. 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.

  1. Przejdź do okna programu Visual Studio Code zawierającego projekt kodu sensor-thl-001-device.

  2. Uruchom aplikację urządzenia symulowanego, wprowadź następujące polecenie:

    dotnet run
    
  3. 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

  1. 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'}
    
  2. 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'}