Esercizio - Eseguire il deprovisioning della registrazione del gruppo
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.
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.
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.
Passare alla finestra di Visual Studio Code contenente il progetto di codice sensor-thl-001-device.
Eseguire l'app per dispositivi simulati, e immettere il comando seguente:
dotnet run
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
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'}
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'}