Como reprovisionar dispositivos
Durante o ciclo de vida de uma solução IoT, é comum mover dispositivos entre os Hubs IoT. Este tópico foi escrito para auxiliar os operadores de solução a configurar políticas de reprovisionamento.
Para obter uma visão geral mais detalhada dos cenários de reprovisionamento, confira Conceitos de reprovisionamento de dispositivos do Hub IoT.
Definir a política de reaprovisionamento
As etapas a seguir configuram a política de reaprovisionamento para um grupo de registros ou registro individual:
Entre no portal do Azure e navegue até instância do Serviço de Provisionamento de Dispositivos.
Selecione Gerenciar registros e, em seguida, selecione a guia Grupos de registros ou Registros individuais.
Selecione o nome do grupo de registros ou registro individual que você quer configurar para reaprovisionamento.
Use o menu suspenso na guia Política de reaprovisionamento para escolher uma das seguintes políticas de reaprovisionamento:
Nunca reaprovisionar o dispositivo.
Reaprovisionar o dispositivo e redefinir o estado inicial: essa política entra em ação quando os dispositivos associados à entrada do registro enviam uma nova solicitação de provisionamento. Dependendo da configuração de entrada de registro, o dispositivo pode ser reatribuído a outro hub IoT. Se o dispositivo estiver mudando entre hubs IoT, o registro de dispositivo com o hub IoT inicial será removido. Os dados de configuração inicial que a instância de serviço de provisionamento recebeu quando o dispositivo foi provisionado são fornecidos ao novo Hub IoT. Durante a migração, o status do dispositivo será relatado como Atribuindo.
Reaprovisionar o dispositivo e migrar o estado atual: essa política entra em ação quando os dispositivos associados com a entrada do registro enviam uma nova solicitação de provisionamento. Dependendo da configuração de entrada de registro, o dispositivo pode ser reatribuído a outro hub IoT. Se o dispositivo estiver mudando entre hubs IoT, o registro de dispositivo com o hub IoT inicial será removido. Todas as informações de estado do dispositivo do hub IoT inicial serão migradas para o novo Hub IoT. Durante a migração, o status do dispositivo será relatado como Atribuindo
Selecione Salvar para habilitar o reprovisionamento do dispositivo com base em suas alterações.
Configurar a política de alocação de registro
A política de alocação determina como os dispositivos associados com o registro serão alocados, ou atribuídos, a um Hub IoT após serem reprovisionados. Para saber mais sobre políticas de alocação, confira Como usar políticas de alocação.
As seguintes etapas configuram a política de alocação para o registro do dispositivo:
Entre no portal do Azure e navegue até instância do Serviço de Provisionamento de Dispositivos.
Selecione Gerenciar registros e, em seguida, selecione a guia Grupos de registros ou Registros individuais.
Selecione o nome do grupo de registros ou registro individual que você quer configurar para reaprovisionamento.
Na página Detalhes do registro, selecione a guia Hubs IoT.
Selecione uma das seguintes políticas de alocação:
Estática: essa política requer que um hub IoT desejado seja listado na entrada do registro de um dispositivo a ser provisionado. Essa política permite que você designe um único Hub IoT ao qual deseja atribuir dispositivos.
Distribuição uniformemente ponderada: esta política distribui os dispositivos entre os hubs IoT com base no peso de alocação configurado em cada hub IoT. Hubs IoT com maior peso de alocação são mais propensos a serem atribuídos. Se estiver provisionando dispositivos para apenas um Hub IoT, recomendamos essa configuração. Essa configuração é o padrão.
Menor latência: esta política atribui dispositivos ao hub IoT que resultará nas comunicações de menor latência entre o dispositivo e o Hub IoT. Essa opção permite que o dispositivo se comunique com o Hub IoT mais próximo no local.
Personalizada (usar a Função do Azure): essa política usa um webhook personalizado hospedado no Azure Functions para atribuir dispositivos a um ou mais hubs IoT. Políticas de alocação personalizada proporcionam a você mais controle sobre como os dispositivos são atribuídos a seus hubs IoT. Para saber mais, confira Noções básicas sobre políticas de alocação personalizadas.
Em Hubs IoT de destino, selecione os hubs IoT vinculados que você quer incluir na sua política de alocação. Opcionalmente, adicione um novo hub IoT vinculado usando o botão Adicionar link para o hub IoT.
Com a política de alocação Configuração estática, selecione o Hub IoT ao qual deseja atribuir dispositivos.
Com a política de alocação Distribuição uniformemente ponderada, os dispositivos serão distribuídos por hash entre os hubs IoT selecionados com base nos pesos de alocação configurados deles.
Com a política de alocação Menor latência, os hubs IoT selecionados serão incluídos na avaliação de latência para determinar o hub IoT mais próximo para a atribuição de dispositivo.
Com a política de alocação Personalizada, selecione os hubs IoT que deseja avaliar para atribuição pelo webhook de alocação personalizado.
Selecione Salvar.
Enviar uma solicitação de provisionamento do dispositivo
Para que os dispositivos sejam reprovisionados com base nas alterações de configuração feitas nas seções anteriores, esses dispositivos devem solicitar o reprovisionamento.
A frequência com que um dispositivo envia uma solicitação de provisionamento depende do cenário. Ao projetar sua solução e definir uma lógica de reprovisionamento, há algumas coisas a serem consideradas. Por exemplo:
- Com que frequência você espera que seus dispositivos sejam reiniciados
- Cotas e limites do DPS
- Tempo de implantação esperado para sua frota (lançamento em fases ou de uma só vez)
- Recurso de repetição implementado no código do cliente, conforme descrito em Diretrizes gerais de repetição no Centro de Arquitetura do Azure
Dica
Recomendamos não fazer o provisionamento a cada reinicialização do dispositivo, pois isso pode atingir os níveis para limitação do serviço, especialmente ao reprovisionar diversos milhares ou milhões de dispositivos de uma só vez. Em vez disso, tente usar a API de Pesquisa do status de registro do dispositivo e se conectar ao Hub IoT com essas informações. Se isso falhar, tente repetir o provisionamento, pois as informações do Hub IoT podem ter sido alteradas. Lembre-se de que consultar o estado de registro contará como um novo registro de dispositivo, portanto, você deve considerar o limite de registros de dispositivo. Considere também implementar uma lógica de repetição apropriada, como recuo exponencial com randomização, conforme descrito em Diretrizes gerais de repetição. Em alguns casos, dependendo dos recursos do dispositivo, é possível salvar as informações do Hub IoT diretamente no dispositivo para se conectar diretamente ao Hub IoT após o primeiro provisionamento usando o DPS. Se você optar por fazer isso, implemente um mecanismo de fallback para casos de erros específicos do Hub como, por exemplo, os seguintes cenários:
- Repita a operação do Hub se o código de resultado for 429 (Muitas solicitações) ou um erro no intervalo 5xx. Não repita para nenhum outro erro.
- Para erros 429, somente repita após o tempo indicado no cabeçalho Retry-After.
- Para erros 5xx, use uma nova retirada exponencial, com a repetição pelo menos cinco segundos após a resposta.
- Em erros diferentes de 429 e 5xx, registre-se novamente por meio do DPS
- Idealmente, você também deve dar suporte a um método para disparar manualmente o provisionamento sob demanda.
Também recomendamos levar em consideração os limites de serviço ao planejar atividades como o envio de atualizações para a frota. Por exemplo, atualizar a frota de uma só vez pode fazer com que todos os dispositivos se registrem novamente por meio do DPS (o que pode facilmente estar acima do limite de cota de registro). Para esses cenários, considere planejar as atualizações do dispositivo em fases, em vez de atualizar toda a frota ao mesmo tempo.
Próximas etapas
- Para saber mais sobre reprovisionamento, confira Conceitos de reprovisionamento de dispositivos no Hub IoT.
- Para saber mais sobre desprovisionamento, confira Como desprovisionar dispositivos provisionados anteriormente de maneira automática.