Exercício – desprovisionar o registro de grupo
Neste exercício, você desprovisionará o grupo de registro completo, incluindo o cancelamento do registro do Serviço de Provisionamento de Dispositivos (DPS) e do registro dos dispositivos do Hub IoT.
Tarefa 1: Cancelar o registro do grupo de registro do DPS
Nesta tarefa, você cancelará o registro do grupo de registro do DPS, o que desabilita os dispositivos registrados. Se você quiser cancelar temporariamente o registro dos dispositivos, poderá desabilitar o grupo de registro. Para um registro permanente, exclua o grupo de registro.
Na área restrita do Azure, desabilite ou exclua o seu grupo de registro.
Desabilite:
az iot dps enrollment-group update --dps-name dps-$suffix --enrollment-id enrollgroup-sensors --provisioning-status disabled
Excluir:
az iot dps enrollment-group delete --dps-name dps-$suffix --enrollment-id enrollgroup-sensors
Se você executar o dispositivo simulado sensor-thl-001 agora, verá uma mensagem de erro semelhante à que você viu com o registro individual desabilitado.
Observação
Se você excluir um grupo de registro de um certificado, os dispositivos que têm o certificado em sua cadeia de certificados ainda poderão se registrar se um grupo de registro habilitado diferente ainda existir para o certificado raiz ou outro certificado intermediário mais alto em sua cadeia de certificados.
Tarefa 2: Cancelar o registro dos dispositivos do Hub IoT
Depois que o grupo de registro for removido do Serviço de Provisionamento de Dispositivos (DPS), o registro do dispositivo ainda existirá no Hub IoT do Azure. Para desprovisionar totalmente os dispositivos, você também precisa remover esse registro.
Na área restrita do Azure, exclua o dispositivo do registro de dispositivo do hub IoT.
az iot hub device-identity delete --hub-name hub-$suffix --device-id sensor-thl-001
Tarefa 3: Confirme se os seus dispositivos estão desprovisionados
Com o registro de grupo excluído do Serviço de Provisionamento de Dispositivos e o dispositivo excluído do registro de dispositivos do Hub IoT do Azure, os dispositivos são totalmente removidos da solução.
Alterne para a janela do Visual Studio Code que contém o projeto de código do sensor-thl-001-device.
Execute o aplicativo de dispositivo simulado, insira o seguinte comando:
dotnet run
Observe as exceções listadas quando o dispositivo tenta provisionar.
Agora que o registro de grupo e o dispositivo registrado foram excluídos, o dispositivo simulado já não é capaz de provisionar ou se conectar. Quando o aplicativo tenta usar o certificado X.509 configurado para se conectar ao DPS, ele retorna uma mensagem de erro 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)
Você concluiu o registro, a configuração e o desprovisionamento como parte do ciclo de vida dos dispositivos IoT com o Serviço de Provisionamento de Dispositivos.
Verificar seu trabalho
Verifique se o grupo de registro foi desabilitado ou excluído do DPS.
az iot dps enrollment-group show --dps-name dps-$suffix --enrollment-id enrollgroup-sensors
Se o grupo de registro estiver desabilitado, você deverá ver na saída do comando que
provisioningStatus
está desabilitado:"provisioningStatus": "disabled"
Se o grupo de registro for excluído, você deverá ver uma mensagem semelhante à seguinte.
{'code': 404204, 'message': 'Not Found.', 'trackingId': '3a1badb5-c1db-4dff-a001-69a5e6e252f4'}
Verifique se o sensor-thl-001 do dispositivo teve o seu registro cancelado (excluído) do hub IoT.
az iot hub device-identity show --hub-name hub-$suffix --device-id sensor-thl-001
Você deverá ver uma mensagem de erro
DeviceNotFound
semelhante à seguinte:{'Message': 'ErrorCode:DeviceNotFound;sensor-thl-001', 'ExceptionMessage': 'Tracking ID:06e0221675514160850421f0b3b787a9-G:0-TimeStamp:10/24/2023 16:57:00'}