Conceitos de grupos (versão prévia)

Um grupo no Azure Device Registry é um conjunto de recursos homogêneos definidos por consulta que você usa para direcionar operações em escala de frota, como atualizações de software. Na prévia atual, um grupo mira em dispositivos conectados ao Hub IoT. Em vez de gerenciar recursos individuais, você define um filtro uma vez e reutiliza o grupo resultante onde precisar agir sobre esse conjunto de recursos.

Diagrama mostrando um trabalho de atualização de software direcionado a um grupo de dispositivos e um trabalho de atualização de onboarding direcionado a dispositivos que estão sendo integrados dentro de um namespace do Azure Device Registry.

Importante

Os grupos do Azure Device Registry estão atualmente em pré-visualização.

Aplicabilidade do serviço

Característica Operações do Azure IoT Hub IoT do Azure
Groups Não suportado nesta prévia Preview

Nesta prévia, grupos suportam dispositivos conectados ao Hub IoT em um namespace do Azure Device Registry.

Associação definida por consulta

Você cria um grupo definindo um filtro com base em propriedades de recursos compatíveis, como fabricante ou versão do software. Na prévia, o único tipo de recurso Azure suportado é RegistryDevice. O Azure Device Registry avalia o filtro dentro do namespace e preenche o grupo com todos os recursos correspondentes.

Para grupos RegistryDevice, use nomes de propriedades da linguagem de consulta na definição da consulta. Por exemplo:

WHERE manufacturer = 'Contoso' AND model = 'Sensor-v2'

Um dispositivo pode pertencer a mais de um grupo ao mesmo tempo. Por exemplo, um dispositivo pode corresponder tanto a um grupo "firmware versão 2.1" quanto a um grupo "building 12". A associação não é exclusiva, então você pode formar grupos de acordo com diferentes necessidades operacionais sem duplicar dispositivos.

Propriedades e operadores suportados pelo RegistryDevice

A tabela a seguir mostra as propriedades e operadores suportados para consultas de filtro RegistryDevice:

Terminologia do usuário Caminho da propriedade Tipo literal Operadores
UUID de espaço de nomes namespaceUuid cadeia =, !=, <>
nome name cadeia =, !=, <>, IN, NIN
tipo de recurso resourceType cadeia =, !=, <>
local location cadeia =, !=, <>, IN, NIN
UUID de dispositivo uuid cadeia =, !=, <>, IN, NIN
estado de provisionamento provisioningState cadeia =, !=, <>, IN, NIN
ID de dispositivo externo externalDeviceId cadeia =, !=, <>, IN, NIN
ativado, desativado enabled string enum =, !=, <>; os valores são 'Enabled' e 'Disabled'
fabricante manufacturer cadeia =, !=, <>
modelo model cadeia =, !=, <>
Revisão de software softwareRevision cadeia =, !=, <>
chave da marcação tags.<key> cadeia =, !=, <>; profundidade máxima do caminho é 4

Propriedades de atualização suportadas pelo RegistryDevice e operadores

A tabela a seguir mostra as propriedades e operadores suportados para consultas de filtro RegistryDevice no escopo de attributes.update:

Caminho da propriedade Tipo literal Operadores
attributes.update.deviceClassId cadeia =, !=, <>, IN, NIN
attributes.update.installedUpdateId.provider cadeia =, !=, <>, IN, NIN
attributes.update.installedUpdateId.name cadeia =, !=, <>, IN, NIN
attributes.update.installedUpdateId.version cadeia =, !=, <>, IN, NIN
attributes.update.latestUpdateJobInfo.state cadeia =, !=, <>, IN, NIN
attributes.update.latestUpdateJobInfo.updateId.provider cadeia =, !=, <>, IN, NIN
attributes.update.latestUpdateJobInfo.updateId.name cadeia =, !=, <>, IN, NIN
attributes.update.latestUpdateJobInfo.updateId.version cadeia =, !=, <>, IN, NIN
attributes.update.agentInfo.compatibilityProperties.<key> cadeia =, !=, <>; profundidade máxima do caminho é 5
attributes.update.agentInfo.agentProfile inteiro =, !=, <>, IN, NIN

Você pode combinar condições com AND, OR, NOT, parênteses e comparações em relação a null. Funções escalares como STARTSWITH, CONTAINS, IS_NULL e IS_DEFINED, comparações campo a campo e caminhos attributes.* ou properties.* arbitrários não são suportados.

Associação em cache e atualização

A pertença ao grupo é calculada e armazenada em cache no tempo de atualização — não é avaliada em tempo real. Quando você cria um grupo, ou ao atualizar um existente, o Azure Device Registry reavalia o filtro e atualiza a lista de membros em cache.

Você aciona uma atualização do grupo por meio da operação RefreshMembers. Refresh é assíncrono, e um grupo pode ter Creating, RefreshingMembers, ou Ready status. Você pode listar membros quando o grupo atingir Ready status.

Como a associação está em cache, a lista de membros de um grupo pode ficar desatualizada entre as atualizações. Se as propriedades de um recurso mudarem, ou um novo recurso começar a corresponder ao filtro, essa mudança não é refletida na lista de membros de um grupo de atualização manual até que a próxima atualização seja concluída. O serviço exige um intervalo mínimo de uma hora entre as atualizações manuais.

Filtros imutáveis e ciclo de vida

Você pode editar o nome e a descrição de um grupo. O filtro é fixo na criação; para direcionar um conjunto diferente de dispositivos, crie ou clone um grupo com um novo filtro.

Para direcionar um conjunto diferente ou ajustado de recursos, crie um grupo separado com o novo filtro. Deletar um grupo remove apenas o grupo; seus dispositivos membros permanecem.

Gerenciar grupos no portal Azure (prévia)

Nesta prévia, a página Grupos (prévia) na navegação do namespace lista seus grupos e abre uma visualização de detalhes do grupo. A visualização detalhada mostra os essenciais do grupo, uma definição de filtro de consulta somente leitura, a contagem atual de membros e o tempo de última atualização. Como o filtro está definido na criação e não pode ser editado, use a visualização de detalhes para confirmar quais dispositivos um grupo tem como alvo. A lista de membros mostra até 10 dispositivos, então trate isso como uma verificação rápida e não como uma lista completa de um grande grupo.

A partir da lista de grupos ou da visualização de detalhes do grupo, você pode tomar as seguintes ações:

  • Crie um grupo a partir da visualização de lista fornecendo um nome obrigatório, uma descrição opcional e um filtro de consulta.
  • Clone um grupo existente a partir da lista ou da visualização de detalhes. Clonar é a maneira prática de partir da definição de um grupo quando você precisa ajustar os critérios de associação, porque não é possível editar o filtro original.
  • Edite o nome e a descrição de um grupo a partir da visualização de detalhes. O filtro de consulta permanece imutável.
  • Atualize a membresia em cache de um grupo na visualização de lista ou detalhes, sujeito aos limites de atualização descritos em Membresia em cache e atualização.
  • Exclua um grupo da lista ou da visualização de detalhes. Você confirma a exclusão digitando o nome do grupo.

Relação com trabalhos e atualizações de software

Grupos existem independentemente de qualquer capacidade específica que os consome. Um grupo é um recurso reutilizável de gestão de frotas que você pode referenciar de vários lugares. Por exemplo, um Job usa um grupo como alvo para uma operação padrão de atualização de software.

Como um grupo pode ser referenciado por mais de um trabalho ou fluxo de trabalho, excluir um grupo ou alterar sua disponibilidade pode afetar qualquer coisa que dependa dele. Planeje mudanças no ciclo de vida do grupo levando essa dependência em mente.

Limites e restrições de pré-visualização

Os seguintes limites atualmente se aplicam aos grupos:

  • Até 100 grupos por assinatura.
  • Um intervalo mínimo de uma hora entre as atualizações manuais.
  • ListMembers Tamanho de página de 1.000, sem filtragem ou ordenação nesta prévia.