Partilhar via


Como usar políticas de alocação para provisionar dispositivos em hubs IoT

O Serviço de Provisionamento de Dispositivo (DPS) do Hub IoT do Azure dá suporte a várias políticas de alocação internas que determinam como ele atribui dispositivos em um ou mais hubs IoT. O DPS também inclui suporte para políticas de alocação personalizadas, que permitem criar e usar suas próprias políticas de alocação quando o cenário de IoT requer funcionalidade não fornecida pelas políticas internas.

Este artigo ajuda você a entender como usar e gerenciar políticas de alocação de DPS.

Compreender as políticas de alocação

As políticas de alocação determinam como o DPS atribui dispositivos a um hub IoT. Cada instância do DPS tem uma política de alocação padrão, mas uma política de alocação definida em um registro pode substituir a política de alocação padrão. Somente hubs IoT vinculados à instância do DPS podem participar da alocação. Se um hub IoT vinculado participa na alocação depende das configurações dentro do registro através do qual um dispositivo é provisionado.

O DPS suporta quatro políticas de alocação:

  • Distribuição uniformemente ponderada: os dispositivos são provisionados em um hub IoT usando um hash ponderado. Por padrão, os hubs IoT vinculados têm a mesma configuração de peso de alocação, portanto, é igualmente provável que tenham dispositivos provisionados para eles. O peso de alocação de um hub IoT pode ser ajustado para aumentar ou diminuir sua probabilidade de ser atribuído. A distribuição ponderada uniformemente é a política de alocação padrão para uma instância DPS. Se você estiver provisionando dispositivos para apenas um hub IoT, recomendamos o uso desta política.

  • Menor latência: os dispositivos são provisionados para o hub IoT com a menor latência para o dispositivo. Se vários hubs IoT fornecerem a menor latência, o DPS distribuirá dispositivos entre esses hubs com base no peso de alocação configurado dos dispositivos.

  • Configuração estática: os dispositivos são provisionados para um único hub IoT, que deve ser especificado no registro.

  • Personalizado (Usar Função do Azure): uma política de alocação personalizada oferece mais controle sobre como os dispositivos são atribuídos a um hub IoT. Essa alocação personalizada é realizada usando um webhook personalizado hospedado no Azure Functions para atribuir dispositivos a um hub IoT. O DPS chama seu webhook fornecendo todas as informações relevantes sobre o dispositivo e o registro. O seu webhook retorna o hub IoT e o gémeo inicial do dispositivo (opcional) usado para provisionar o dispositivo. As cargas úteis personalizadas também podem ser passadas de e para o dispositivo. Para saber mais, consulte Compreender as políticas de alocação personalizadas com o Serviço de Provisionamento de Dispositivo do Hub IoT do Azure. Não pode ser definido como a política padrão da instância DPS.

Nota

A lista anterior mostra os nomes das políticas de alocação conforme aparecem no portal do Azure. Ao definir a política de alocação usando a API REST do DPS, a CLI do Azure e os SDKs de serviço do DPS, eles são referidos da seguinte forma: hashed, geolatency, static e custom.

Há duas configurações em um hub IoT vinculado que controlam como ele participa da alocação:

  • Peso de alocação: define o peso que o hub IoT tem ao participar de políticas de alocação que envolvem vários hubs IoT. Pode ser um valor entre um e 1000. O padrão é um (ou null).

    • Com a política de alocação de distribuição uniformemente ponderada, os hubs IoT com valores de peso de alocação mais altos têm uma maior probabilidade de serem selecionados em comparação com aqueles com valores de peso mais baixos.

    • Com a política de alocação de latência mais baixa , o valor de peso de alocação afeta a probabilidade de um hub IoT ser selecionado quando mais de um hub IoT satisfaz o requisito de menor latência.

    • Com uma política de alocação personalizada , se e como o valor de peso de alocação é usado depende da lógica do webhook.

  • Aplicar política de alocação: especifica se o hub IoT participa da política de alocação. O padrão é Sim (true). Se definido como Não (false), os dispositivos não serão atribuídos ao hub IoT. O hub IoT ainda pode ser selecionado num registo, mas não participa na alocação. Você pode usar essa configuração para remover temporária ou permanentemente um hub IoT da participação na alocação; por exemplo, se estiver se aproximando do número permitido de dispositivos.

Para saber mais sobre como vincular e gerenciar hubs IoT em sua instância DPS, consulte Como vincular e gerenciar hubs IoT.

Quando um dispositivo é provisionado por meio do DPS, o serviço o atribui a um hub IoT de acordo com as seguintes diretrizes:

  • Se o registro especificar uma política de alocação, use essa política; caso contrário, use a política de alocação padrão para a instância DPS.

  • Se o registro especificar um ou mais hubs IoT, aplique a política de alocação nesses hubs IoT; caso contrário, aplique a política de alocação em todos os hubs IoT vinculados à instância do DPS. Se a política de alocação for Configuração estática, o registro deverá especificar um hub IoT.

Importante

Quando você altera uma política de alocação ou os hubs IoT aos quais ela se aplica, as alterações afetam apenas os registros de dispositivos subsequentes. Os dispositivos já provisionados para um hub IoT não são afetados. Se quiser que as alterações se apliquem retroativamente a esses dispositivos, será necessário reprovisioná-las. Para saber mais, consulte Como reprovisionar dispositivos.

Definir a política de alocação padrão para a instância DPS

A política de alocação padrão para a instância DPS é usada quando uma política de alocação não é especificada em um registro. Somente distribuição ponderada uniforme, latência mais baixa e configuração estática são suportadas para a política de alocação padrão. Não há suporte para alocação personalizada . Quando uma instância DPS é criada, sua política padrão é automaticamente definida como distribuição ponderada uniformemente.

Nota

Se você definir Configuração estática como a política de alocação padrão para uma instância DPS, um hub IoT vinculado deverá ser especificado em registros que dependem da política padrão.

Usar o portal do Azure para definir a política de alocação padrão

Para definir a política de alocação padrão para a instância do DPS no portal do Azure:

  1. No menu esquerdo da instância do DPS, selecione Gerenciar política de alocação.

  2. Selecione o botão para a política de alocação que deseja definir: Menor latência, Distribuição ponderada uniformemente ou Configuração estática. (A alocação personalizada não é suportada para a política de alocação padrão.)

  3. Selecione Guardar.

Usar a CLI do Azure para definir a política de alocação padrão

Use o comando az iot dps update Azure CLI para definir a política de alocação padrão para a instância do DPS. Você usa --set properties.allocationPolicy para especificar a política. Por exemplo, o comando a seguir define a política de alocação como distribuição ponderada uniformemente (o padrão):

az iot dps update --name MyExampleDps --set properties.allocationPolicy=hashed

O DPS também oferece suporte à definição da política de alocação padrão usando a API REST de Criar ou Atualizar recurso do DPS, os modelos do Gerenciador de Recursos e os SDKs de Gerenciamento do DPS.

Definir política de alocação e hubs IoT para inscrições

Inscrições individuais e grupos de inscrição podem especificar uma política de alocação e os hubs IoT vinculados aos quais ela deve ser aplicada. Se o registro não especificar uma política de alocação, a política de alocação padrão para a instância DPS será usada.

Em ambos os casos, aplicam-se as seguintes condições:

  • Para políticas de distribuição ponderada uniforme, latência mais baixa e alocação personalizada , o registro pode especificar quais hubs IoT vinculados devem ser usados. Se nenhum hub IoT for selecionado no registro, todos os hubs IoT vinculados na instância do DPS serão usados.

  • Para Configuração estática, o registro deve especificar um único hub IoT na lista de hubs IoT vinculados.

Para inscrições individuais e grupos de inscrição, você pode especificar uma política de alocação e os hubs IoT vinculados aos quais aplicá-la ao criar ou atualizar um registro.

Usar o portal do Azure para gerenciar a política de alocação de registro e os hubs IoT

Para definir a política de alocação e selecionar hubs IoT em um registro no portal do Azure:

  1. No menu esquerdo da instância do DPS, selecione Gerenciar inscrições.

  2. Na página Gerenciar inscrições:

    • Para criar uma nova inscrição, selecione a Guia de Grupos de Inscrição ou Inscrições Individuais e, em seguida, selecione Adicionar Grupo de Inscrição ou Adicionar Inscrição Individual.

    • Para atualizar uma inscrição existente, selecione-a na lista na guia Grupos de Inscrição ou Inscrições Individuais.

  3. Na página Adicionar Registro (ao criar) ou na página Detalhes do Registro (na atualização), selecione a guia Hubs IoT. Nesta guia, você pode selecionar a política de alocação que deseja aplicar ao registro e selecionar os hubs IoT que devem ser usados:

    Captura de tela que mostra a política de alocação e as configurações de hubs selecionados na guia Hubs IoT.

    1. Selecione os hubs IoT aos quais os dispositivos podem ser atribuídos na lista suspensa. Se selecionar a política de alocação de configuração estática, estará limitado a selecionar um único hub IoT associado. Para todas as outras políticas de alocação, todos os hubs IoT vinculados são selecionados por padrão, mas você pode modificar essa seleção usando a lista suspensa. Para que o registro use automaticamente hubs IoT vinculados à medida que eles são adicionados (ou excluídos) à instância do DPS, desmarque todos os hubs IoT.

    2. Opcionalmente, você pode selecionar o botão Vincular um novo hub IoT para vincular um novo hub IoT à instância do DPS e disponibilizá-lo na lista de hubs IoT que podem ser selecionados. Para obter detalhes sobre como vincular um hub IoT, consulte Adicionar um hub IoT vinculado.

    3. Selecione a política de alocação que deseja aplicar à inscrição. A política de alocação padrão para a instância DPS é selecionada por padrão. Para alocação personalizada, você também precisa especificar um webhook de política de alocação personalizada no Azure Functions. Para obter mais informações, consulte Tutorial: Usar políticas de alocação personalizadas com o Serviço de Provisionamento de Dispositivo (DPS).

  4. Defina quaisquer outras propriedades necessárias para o registro e salve suas configurações.

Usar a CLI do Azure para gerir a política de alocação de inscrição e os hubs IoT

Use os comandos az iot dps enrollment create Azure CLI, az iot dps enrollment update Azure CLI, az iot dps enrollment-group create Azure CLI, az iot dps enrollment-group update Azure CLI para criar ou atualizar inscrições individuais ou grupos de inscrição.

Por exemplo, o comando a seguir cria um grupo de registro de chave simétrica que usa como padrão a política de alocação padrão definida na instância DPS e todos os hubs IoT vinculados à instância DPS:

az iot dps enrollment-group create --dps-name MyExampleDps --enrollment-id MyEnrollmentGroup 

O comando a seguir atualiza o mesmo grupo de registro para usar a política de alocação de menor latência com hubs IoT chamados MyExampleHub e MyExampleHub-2:

az iot dps enrollment-group update --dps-name MyExampleDps --enrollment-id MyEnrollmentGroup --allocation-policy geolatency --iot-hubs "MyExampleHub.azure-devices.net MyExampleHub-2.azure-devices.net"

O DPS também suporta a definição de política de alocação e os hubs IoT selecionados no processo de registo, utilizando as APIs REST para Criar ou Atualizar registo individual e Criar ou Atualizar grupo de registo, e os SDKs do serviço DPS.

Comportamento de alocação

Observe o seguinte comportamento ao usar políticas de alocação com o hub IoT:

  • Com a CLI do Azure, a API REST e os SDKs de serviço DPS, você pode criar inscrições sem política de alocação. Nesse caso, o DPS usa a política padrão para a instância do DPS quando um dispositivo é provisionado através do processo de inscrição. Alterar a configuração de política padrão na instância do DPS altera a forma como os dispositivos são provisionados por meio do registro.

  • Com o portal do Azure, a configuração de política de alocação para a inscrição é preenchida previamente com a política de alocação padrão. Você pode manter essa configuração ou alterá-la para outra política, mas, quando você salva o registro, a política de alocação é definida no registro. As alterações subsequentes à política de alocação padrão do serviço não alteram a forma como os dispositivos são provisionados por meio do registro.

  • Para as políticas de Distribuição igualmente ponderada, Menor latência e Alocação personalizada, pode configurar a inscrição para usar todos os hubs IoT vinculados à instância do DPS:

    • Com a CLI do Azure e os SDKs de serviço DPS, crie o registro sem especificar nenhum hub IoT.

    • Com o portal do Azure, o registro é pré-preenchido com todos os hubs IoT vinculados à instância do DPS selecionada; desmarque todos os hubs IoT antes de salvar o registro.

    Se nenhum hub IoT for selecionado no registro, sempre que um novo hub IoT estiver vinculado à instância do DPS, ele participará da alocação; e vice-versa para um hub IoT que é removido da instância DPS.

  • Se os hubs IoT forem especificados em um registro, a configuração dos hubs IoT no registro deverá ser atualizada manual ou programaticamente para que um hub IoT recém-vinculado seja adicionado ou um hub IoT excluído seja removido da alocação.

  • A alteração da política de alocação ou dos hubs IoT usados para um registro afeta apenas os registros subsequentes por meio desse registro. Se pretender que as alterações afetem os registos anteriores, terá de reprovisionar todos os dispositivos registados anteriormente.

Limitações

Existem algumas limitações quando se trabalha com políticas de alocação e pontos de extremidade privados. Para obter mais informações, consulte limitações de ponto de extremidade privado.

Próximos passos