Analisar o gerenciamento automático de dispositivos no Hub IoT do Azure

Concluído

O gerenciamento automático de dispositivo no Hub IoT do Azure automatiza muitas das tarefas repetitivas e complexas de gerenciamento de grande frotas de dispositivos. Com o gerenciamento automático de dispositivo, você pode direcionar um conjunto de dispositivos com base em suas propriedades, definir uma configuração desejada e permitir que o Hub IoT atualize dispositivos sempre que entrem no escopo. Essa atualização é feita usando uma configuração automática de dispositivo ou configuração automática de módulo, que permite resumir a conclusão e a conformidade, tratar a mesclagem e os conflitos e implementar configurações em uma abordagem em fases.

Observação

O gerenciamento automático de dispositivos requer a Camada standard do serviço do Hub IoT.

O gerenciamento automático de dispositivos funciona atualizando um conjunto de dispositivos gêmeos com as propriedades desejadas e relatando um resumo baseado nas propriedades relatadas do dispositivo gêmeo. Ele apresenta uma nova classe e um documento JSON denominado Configuração que tem três partes:

  • A condição de destino define o escopo de dispositivos gêmeos a serem atualizados. A condição de destino é especificada como uma consulta em marcas de dispositivos gêmeos e/ou propriedades reportadas.
  • O conteúdo de destino define as propriedades desejadas para serem adicionadas ou atualizadas nos dispositivos gêmeos de destino. O conteúdo inclui um caminho para a seção de propriedades desejadas a ser alterado.
  • As métricas definem as contagens de resumos de vários estados de configuração como êxito, em andamento, e erro. Métricas personalizadas são especificadas como consultas nas propriedades reportados do dispositivo gêmeo. As métricas do sistema são as métricas padrão que medem o status da atualização do gêmeo, como o número de dispositivos gêmeos direcionados e o número de gêmeos que foram atualizados com êxito.

As configurações automáticas do dispositivo são executadas pela primeira vez logo após a configuração ser criada e, em seguida, em intervalos de cinco minutos. As consultas de métricas são executadas sempre que a configuração automática do dispositivo é executada. Há suporte para no máximo 100 configurações automáticas em Hubs IoT da camada standard e no máximo dez em Hubs IoT da camada gratuita. Limitações também se aplicam.

Observação

O gerenciamento automático de dispositivos no Hub IoT do Azure pode ser aplicado a identidades de módulo usando módulos gêmeos de maneira semelhante à maneira como este tópico descreve o uso de identidades de dispositivo e dispositivos gêmeos. Para simplificar, este tópico se concentra na implementação do dispositivo e do dispositivo gêmeo.

Implementar gêmeos

As configurações automáticas de dispositivo requerem o uso de dispositivos gêmeos para sincronizar o estado entre a nuvem e os dispositivos.

As configurações automáticas de módulo requerem o uso de módulos gêmeos para sincronizar o estado entre a nuvem e os módulos.

Usar marcas para direcionar gêmeos

Antes de criar uma configuração, especifique quais dispositivos ou módulos você deseja afetar. O Hub IoT do Azure identifica dispositivos por meio do uso de marcas no dispositivo gêmeo e identifica os módulos que usam marcas no módulo gêmeo. Cada dispositivo ou módulo pode ter várias marcas e você pode defini-las de qualquer modo que faça sentido para sua solução. Por exemplo, se você gerenciar dispositivos em locais diferentes, adicione as seguintes marcas a um dispositivo gêmeo:

"tags": {
"location": {
  "state": "Washington",
  "city": "Tacoma"
    }
}

Criar uma configuração

Use o portal do Azure para iniciar o processo de criação de uma configuração da seguinte forma:

  1. No portal do Azure, abra o hub IoT.
  2. Selecione Configurações + Implantações no painel de navegação à esquerda.
  3. Selecione Adicionar e escolha Configuração do Dispositivo Gêmeo ou Configuração do Módulo Gêmeo, na lista suspensa. Screenshot showing how to add a configuration.

Há cinco etapas para criar uma configuração.

  1. Nome e rótulo
  2. Configurações de gêmeo
  3. Dispositivos ou módulos de destino
  4. Especificar métricas
  5. Examinar configuração

As seções a seguir percorrem cada etapa.

Nome e rótulo

  1. Dê um nome exclusivo à sua configuração de até 128 letras minúsculas. Letras minúsculas e os seguintes caracteres especiais são permitidos: -+%_*!' Espaços não são permitidos.
  2. Adicione rótulos para ajudar a acompanhar as configurações. Os rótulos são pares de Nome e Valor que descrevem a configuração. Por exemplo: HostPlatform, Linux ou Version, 3.0.1.
  3. Selecione Próximo para ir para o próximo passo.

Configurações de gêmeo

Esta seção define o conteúdo a ser definido nas propriedades desejadas dos dispositivos gêmeos ou módulos gêmeos de destino. Há duas entradas para cada conjunto de configurações. A primeira é a Propriedade Módulo Gêmeo, que é o caminho para a seção JSON dentro das propriedades desejadas do gêmeo que são definidas. O segundo é o conteúdo do JSON a ser inserido nessa seção.

Por exemplo, é possível definir a Propriedade Módulo Gêmeo como properties.desired.chiller-water e, em seguida, fornecer o seguinte conteúdo JSON:

{
  "temperature": 66,
  "pressure": 28
}

Screenshot of setting the device or module twin property and json content.

Também é possível definir configurações individuais especificando o caminho inteiro na Propriedade Módulo Gêmeo e o valor no Conteúdo da Propriedade Módulo Gêmeo, sem colchetes. Por exemplo, defina a Propriedade Módulo Gêmeo como properties.desired.chiller-water.temperature e defina o Conteúdo da Propriedade Módulo Gêmeo como 66. Em seguida, crie uma configuração gêmea para a propriedade de pressão.

Se duas ou mais configurações forem direcionadas à mesma Propriedade Módulo Gêmeo, o Conteúdo da configuração de prioridade mais alta será aplicado (a prioridade será definida na seção Dispositivos de destino ou módulos da seguinte maneira).

Caso queira remover uma propriedade, defina o valor da propriedade como null.

Adicione mais configurações selecionando Adicionar Propriedade Desejada.

Dispositivos ou módulos de destino

Use a propriedade marcas dos dispositivos gêmeos para direcionar os dispositivos específicos que devem receber essa configuração. Você também pode direcionar dispositivos por propriedades reportadas de dispositivo gêmeo.

Como várias configurações podem ter como destino o mesmo dispositivo ou módulo, você deverá dar a cada configuração um número de prioridade. Se houver um conflito, a configuração com a prioridade mais alta vencerá:

  1. Insira um inteiro positivo para a Prioridade da configuração. O maior valor numérico é considerado a prioridade mais alta. Se duas configurações tiverem o mesmo número de prioridade, aquela que foi criada mais recentemente ganhará.

  2. Insira uma Condição de destino, para determinar a quais dispositivos são direcionados a esta configuração. A condição se baseia nas marcas do dispositivo gêmeo ou propriedades reportadas do dispositivo gêmeo e deve corresponder ao formato da expressão. Por exemplo, tags.environment='test' ou properties.reported.chillerProperties.model='4000x'. É possível especificar * para direcionar todos os dispositivos.

Para configuração automática de módulo, use uma consulta para especificar marcas ou propriedades reportadas dos módulos registrados para o hub IoT. Por exemplo, from devices.modules where tags.environment='test' ou from devices.modules where properties.reported.chillerProperties.model='4000x'. O curinga não pode ser usado para direcionar todos os módulos.

Especificar métricas

As métricas fornecem contagens resumidas dos vários estados que um dispositivo pode relatar depois da aplicação do conteúdo de configuração. Por exemplo, você pode criar uma métrica para alterações de configurações pendentes, uma métrica de erros e uma métrica para alterações de configurações bem-sucedidas.

Cada configuração pode ter até cinco métricas personalizadas.

  1. Insira um nome para nome da métrica.
  2. Insira uma consulta para Critérios da métrica. A consulta é baseada nas propriedades reportadas de dispositivo gêmeo. A métrica representa o número de linhas retornadas pela consulta.

Por exemplo:

SELECT deviceId FROM devices
  WHERE properties.reported.chillerWaterSettings.status='pending'

Você pode incluir uma cláusula na qual a configuração foi aplicada, por exemplo:

/* Include the double brackets. */
SELECT deviceId FROM devices
  WHERE configurations.[[yourconfigname]].status='Applied'

Se você estiver criando uma métrica para relatar os módulos configurados, selecione moduleId em devices.modules. Por exemplo:

SELECT deviceId, moduleId FROM devices.modules
  WHERE properties.reported.lastDesiredStatus.code = 200

Examinar configuração

Revise as informações da configuração e, em seguida, selecione Enviar.

Monitorar uma configuração

Para exibir os detalhes de uma configuração e monitorar os dispositivos que a executam, use as seguintes etapas:

  1. No portal do Azure, vá para o hub IoT.
  2. Selecione Configurações + Implantações no Gerenciamento de dispositivos.
  3. Inspecione a lista de configuração. Para cada configuração, você pode exibir os seguintes detalhes:
    • ID - o nome da configuração.
    • Condição de destino – a consulta usada para definir os dispositivos ou módulos direcionados.
    • Prioridade - o número de prioridade atribuído à configuração.
    • Hora de criação - o carimbo de data/hora de quando a configuração foi criada. Esse carimbo de data/hora é usado para desempate quando duas configurações têm a mesma prioridade.
    • As métricas do sistema - métricas que são calculadas pelo Hub IoT e não podem ser personalizadas pelos desenvolvedores. A métrica de Destino especifica o número de dispositivos gêmeos que correspondem à condição de destino. A métrica Aplicada especifica o número de dispositivos gêmeos que foram modificados pela configuração, o que pode incluir modificações parciais quando uma configuração separada de prioridade mais alta também fez alterações.
    • Métricas personalizadas -métricas que foram especificadas pelo desenvolvedor como consultas em propriedades reportadas de dispositivo gêmeo. Até cinco métricas personalizadas podem ser definidas por configuração.
  4. Selecione a configuração que deseja monitorar.
  5. Inspecione os detalhes da configuração. Você pode usar guias para exibir detalhes específicos sobre os dispositivos que receberam a configuração.
    • Dispositivos de destino ou módulos de destino – os dispositivos ou módulos que correspondem à condição de destino.
    • Métricas - uma lista de métricas do sistema e métricas personalizadas. É possível exibir uma lista de dispositivos que são contados para cada métrica selecionando a métrica na lista suspensa e selecionando Exibir Dispositivos ou Exibir Módulos.
    • Rótulos – pares de chave-valor usados para descrever uma configuração. Rótulos não têm impacto sobre a funcionalidade.
    • Configurações do dispositivo gêmeo ou Configurações de módulo gêmeo – as configurações de gêmeo definidas pela configuração, se houver.

Modificar uma configuração

Quando você modifica uma configuração, as alterações são replicadas imediatamente para todos os dispositivos ou módulos direcionados.

Se você atualizar a condição de destino, ocorrerão as seguintes atualizações:

  • Caso um dispositivo gêmeo não tenha atendido à condição de destino antiga, mas atenda à nova condição de destino e essa configuração tiver a prioridade mais alta para o dispositivo gêmeo, essa configuração será aplicada ao dispositivo gêmeo.
  • Se um dispositivo gêmeo não atender mais à condição de destino, as definições da configuração serão removidas e o dispositivo gêmeo será modificado pela próxima configuração de prioridade mais alta.
  • Se um dispositivo gêmeo atualmente executando essa configuração não atender mais à condição de destino e não atender à condição de destino de nenhuma outra configuração, as definições da configuração serão removidas e nenhuma outra alteração será feita no gêmeo.

Para modificar uma configuração, use as seguintes etapas:

  1. No portal do Azure, vá para o hub IoT.
  2. Selecione Configurações + Implantações no Gerenciamento de dispositivos.
  3. Selecione a configuração que deseja modificar.
  4. É possível fazer atualizações nos seguintes campos:
    • Prioridade
    • Métricas
    • Condição de destino
    • Rótulos
  5. Clique em Salvar.
  6. Siga as etapas em Monitorar uma configuração para observar as mudanças.

Excluir uma configuração

Quando você exclui uma configuração, qualquer dispositivo gêmeo assume sua próxima configuração de prioridade mais alta. Se os dispositivos gêmeos não atendem a condição destino de qualquer outra configuração, não serão aplicadas outras configurações.

  1. No portal do Azure, vá para o hub IoT.
  2. Selecione Configurações + Implantações no Gerenciamento de dispositivos.
  3. Use a caixa de seleção para selecionar a configuração que deseja excluir.
  4. Selecione Excluir.
  5. Uma mensagem solicitará que você confirme.