Exercício - Desprovisionar a inscrição no grupo
Neste exercício, você desprovisiona o grupo de inscrição completo, incluindo o cancelamento do registro do Serviço de Provisionamento de Dispositivo (DPS) e o cancelamento do registro dos dispositivos do Hub IoT.
Tarefa 1: Cancelar o registro do grupo de inscrição do DPS
Nesta tarefa, você cancela o registro do grupo de inscrição do DPS, o que desabilita os dispositivos registrados. Se quiser cancelar temporariamente o registro dos dispositivos, você pode desativar o grupo de registro. Para um cancelamento permanente, exclua o grupo de inscrição.
Na área restrita do Azure, desabilite ou exclua seu grupo de registro.
Desativar:
az iot dps enrollment-group update --dps-name dps-$suffix --enrollment-id enrollgroup-sensors --provisioning-status disabled
Eliminar:
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 viu com o registro individual desativado.
Nota
Se você excluir um grupo de registro para um certificado, os dispositivos que têm o certificado em sua cadeia de certificados ainda poderão se inscrever se um grupo de registro diferente e habilitado ainda existir para o certificado raiz ou outro certificado intermediário mais acima 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 Dispositivo (DPS), o registro do dispositivo ainda existirá no Hub IoT do Azure. Para desprovisionar totalmente os dispositivos, você precisa remover esse registro também.
Na área restrita do Azure, exclua o dispositivo do registro do dispositivo do hub IoT.
az iot hub device-identity delete --hub-name hub-$suffix --device-id sensor-thl-001
Tarefa 3: Confirmar se os dispositivos foram desprovisionados
Com o registro de grupo excluído do Serviço de Provisionamento de Dispositivo e o dispositivo excluído do registro de dispositivo do Hub IoT do Azure, o(s) dispositivo(s) será(ão) totalmente removido(s) da solução.
Alterne para a janela Código do Visual Studio que contém seu projeto de código sensor-thl-001-device.
Execute o aplicativo de dispositivo simulado, digite 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 não poderá mais 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.
Verifique o seu trabalho
Verifique se o grupo de inscrição foi desativado ou excluído do DPS.
az iot dps enrollment-group show --dps-name dps-$suffix --enrollment-id enrollgroup-sensors
Se o grupo de inscrição estiver desativado, você verá a saída do comando que o
provisioningStatus
está desabilitado:"provisioningStatus": "disabled"
Se o grupo de inscrição for excluído, você verá uma mensagem semelhante à seguinte.
{'code': 404204, 'message': 'Not Found.', 'trackingId': '3a1badb5-c1db-4dff-a001-69a5e6e252f4'}
Verifique se o dispositivo sensor-thl-001 foi cancelado (excluído) do hub IoT.
az iot hub device-identity show --hub-name hub-$suffix --device-id sensor-thl-001
Você verá uma mensagem de
DeviceNotFound
erro semelhante à seguinte:{'Message': 'ErrorCode:DeviceNotFound;sensor-thl-001', 'ExceptionMessage': 'Tracking ID:06e0221675514160850421f0b3b787a9-G:0-TimeStamp:10/24/2023 16:57:00'}