Esercizio - Eseguire il deprovisioning della registrazione del gruppo

Completato

In questo esercizio si esegue il deprovisioning del gruppo di registrazione completo, inclusa la disattivazione della registrazione dal servizio Device Provisioning (DPS) e la deregistrazione dei dispositivi dall'hub IoT.

Attività 1: Annullare la registrazione del gruppo di registrazione dal servizio Device Provisioning

In questa attività si annulla la registrazione del gruppo di registrazione dal servizio Device Provisioning, che disabilita i dispositivi registrati. Se si vuole annullare temporaneamente la registrazione dei dispositivi, è possibile disabilitare il gruppo di registrazione. Per una registrazione permanente, eliminare il gruppo di registrazione.

  1. Nella sandbox di Azure disabilitare o eliminare il gruppo di registrazione.

    Disabilitare:

    az iot dps enrollment-group update --dps-name dps-$suffix --enrollment-id enrollgroup-sensors --provisioning-status disabled
    

    Eliminazione:

    az iot dps enrollment-group delete --dps-name dps-$suffix --enrollment-id enrollgroup-sensors
    

Se si esegue ora il dispositivo simulato sensor-thl-001, verrà visualizzato un messaggio di errore simile a quello visualizzato con la registrazione singola disabilitata.

Nota

Se si elimina un gruppo di registrazione per un certificato, i dispositivi con il certificato nella catena di certificati potrebbero comunque essere in grado di registrare se esiste ancora un gruppo di registrazione abilitato diverso per il certificato radice o un altro certificato intermedio superiore nella catena di certificati.

Attività 2: Annullare la registrazione dei dispositivi dall'hub IoT

Dopo che il gruppo di registrazione è stato rimosso dal servizio Device Provisioning (DPS), la registrazione del dispositivo esiste ancora all'interno dell'hub IoT di Azure. Per eseguire completamente il deprovisioning dei dispositivi, è necessario rimuovere anche la registrazione.

  1. Nella sandbox di Azure eliminare il dispositivo dal registro dei dispositivi dell'hub IoT.

    az iot hub device-identity delete --hub-name hub-$suffix --device-id sensor-thl-001
    

Attività 3: Verificare che il deprovisioning dei dispositivi sia stato eseguito

Con la registrazione del gruppo eliminata dal servizio Device Provisioning e il dispositivo eliminato dal registro dei dispositivi dell'hub IoT di Azure, i dispositivi vengono completamente rimossi dalla soluzione.

  1. Passare alla finestra di Visual Studio Code contenente il progetto di codice sensor-thl-001-device.

  2. Eseguire l'app per dispositivi simulati, e immettere il comando seguente:

    dotnet run
    
  3. Si notino le eccezioni elencate quando il dispositivo tenta di effettuare il provisioning.

    Ora che la registrazione del gruppo e il dispositivo registrato vengono eliminati, il dispositivo simulato non può più essere in grado di effettuare il provisioning o la connessione. Quando l'applicazione tenta di usare il certificato X.509 configurato per connettersi al servizio Device Provisioning, restituisce un messaggio di errore 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)
    

È stata completata la registrazione, la configurazione e il deprovisioning come parte del ciclo di vita dei dispositivi IoT con il servizio Device Provisioning.

Verificare il lavoro

  1. Verificare che il gruppo di registrazione sia stato disabilitato o eliminato dal servizio Device Provisioning.

    az iot dps enrollment-group show --dps-name dps-$suffix --enrollment-id enrollgroup-sensors
    

    Se il gruppo di registrazione è disabilitato, verrà visualizzato l'output del comando che indica che provisioningStatus è disabilitato:

    "provisioningStatus": "disabled"
    

    Se il gruppo di registrazione viene eliminato, verrà visualizzato un messaggio simile al seguente.

    {'code': 404204, 'message': 'Not Found.', 'trackingId': '3a1badb5-c1db-4dff-a001-69a5e6e252f4'}
    
  2. Verificare che sensor-thl-001 del dispositivo sia stato deregistrato (eliminato) dall'hub IoT.

    az iot hub device-identity show --hub-name hub-$suffix --device-id sensor-thl-001
    

    Verrà visualizzato un messaggio di errore DeviceNotFound simile al seguente:

     {'Message': 'ErrorCode:DeviceNotFound;sensor-thl-001', 'ExceptionMessage': 'Tracking ID:06e0221675514160850421f0b3b787a9-G:0-TimeStamp:10/24/2023 16:57:00'}