Como vincular e gerenciar hubs IoT

O DPS (Serviço de Provisionamento de Dispositivos) no Hub IoT do Azure pode provisionar dispositivos em um ou mais hubs IoT. Para que o DPS possa provisionar dispositivos em um hub IoT, ele precisa estar vinculado à sua instância do DPS. Após vinculado, o hub IoT pode ser usado em uma política de alocação. As políticas de alocação determinam como os dispositivos são atribuídos aos hubs IoT pelo DPS. Este artigo fornece instruções sobre como vincular hubs IoT e gerenciá-los na instância do DPS.

Hubs IoT vinculados e políticas de alocação

O DPS só pode provisionar dispositivos para Hubs IoT que foram vinculados a ele. Vincular um hub de IoT a uma instância do DPS fornece permissões de leitura/gravação do serviço ao registro de dispositivo do hub IoT. Com essas permissões, o DPS pode registrar uma ID de dispositivo e definir a configuração inicial no dispositivo gêmeo. Hubs de IoT vinculados podem estar em qualquer região do Azure. Você pode vincular hubs em outras assinaturas à sua instância do DPS.

Após um hub IoT ser vinculado ao DPS, ele se qualifica para participar da alocação. Como – e se – ele participará da alocação depende das configurações no registro com que o dispositivo é provisionado e das configurações no hub IoT vinculado.

As seguintes configurações controlam como o DPS usa hubs IoT vinculados:

  • Cadeia de conexão: define a cadeia de conexão do Hub IoT que o DPS usa para se conectar ao hub IoT vinculado. A cadeia de conexão é baseada em uma das políticas de acesso compartilhado do Hub IoT. O DPS precisa das seguintes permissões no hub IoT: RegistryWrite e ServiceConnect. A cadeia de conexão deve ser para uma política de acesso compartilhado que tenha essas permissões. Para saber mais sobre as políticas de acesso compartilhado do Hub IoT, confira Controle de acesso e permissões do Hub IoT.

  • Peso da alocação: determina a probabilidade de um hub IoT ser selecionado quando o DPS faz hash da atribuição de dispositivos em um conjunto de hubs IoT. O valor pode estar entre um e 1000. O padrão é um (ou nulo). Valores mais altos aumentam a probabilidade do hub IoT ser selecionado.

  • Aplicar política de alocação: define se o hub IoT participa da política de alocação. O padrão é Sim (verdadeiro). Se definido como Não (falso), os dispositivos não serão atribuídos ao hub IoT. O hub IoT ainda pode ser selecionado em um registro, mas não participará da 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 ele estiver se aproximando do número permitido de dispositivos.

Para saber mais sobre as políticas de alocação do DPS e como os hubs IoT vinculados participam delas, consulte Gerenciar políticas de alocação.

Adicionar um hub IoT vinculado

Quando você vincula um hub IoT à instância do DPS, ele fica disponível para participar da alocação. Você pode adicionar hubs IoT que estão dentro ou fora de sua assinatura. Quando você vincula um Hub IoT, ele pode ou não ficar disponível para alocações em registros existentes:

  • Para registros que não definem explicitamente os hubs IoT aos quais aplicar a política de alocação, um hub IoT recém-vinculado começa imediatamente a participar da alocação.

  • Para registros que definem explicitamente os hubs IoT aos quais aplicar a política de alocação, você precisará adicionar manual ou programaticamente o novo hub IoT às configurações de registro para que ele participe da alocação.

Limitações

No portal do Azure, você pode vincular um hub IoT no menu à esquerda da instância do DPS ou no registro ao criar ou atualizar um registro. Nos dois casos, o hub IoT tem como escopo a instância do DPS (não apenas o registro).

Para vincular um hub IoT à instância do DPS no portal do Azure:

  1. No menu à esquerda da instância do DPS, selecione Hubs IoT vinculados.

  2. Na parte superior da página, selecione + Adicionar.

  3. Na página Adicionar link ao hub IoT, selecione a assinatura que contém o hub IoT e escolha o nome do hub IoT na lista Hub IoT.

  4. Depois de selecionar o hub IoT, escolha uma política de acesso que o DPS usará para se conectar ao hub IoT. A lista Política de Acesso mostra todas as políticas de acesso compartilhado definidas no Hub IoT selecionada que têm as permissões RegistryWrite e ServiceConnect definidas. O padrão é a política iothubowner. Selecione a política que deseja usar.

  5. Selecione Salvar.

Ao criar ou atualizar um registro, você pode usar o botão Vincular um novo hub IoT no registro. Você verá a mesma página e as opções acima. Após você salvar o hub vinculado, ele ficará disponível em sua instância do DPS e poderá ser selecionado no registro.

Observação

No portal do Azure, você não pode definir as configurações Peso da alocação e Aplicar política de alocação ao adicionar um hub IoT vinculado. Em vez disso, você poderá atualizar essas configurações após o hub IoT ser vinculado. Para saber mais, confira Atualizar um hub IoT vinculado.

Use o comando az iot dps linked-hub create da CLI do Azure para vincular um hub IoT à instância do DPS.

Por exemplo, o comando a seguir vincula um hub IoT chamado MyExampleHub usando uma cadeia de conexão para sua política de acesso compartilhado iothubowner. Esse comando deixa as configurações Peso da alocação e Aplicar política de alocação com os valores padrão, mas você poderá especificar valores para elas se desejar.

az iot dps linked-hub create --dps-name MyExampleDps --resource-group MyResourceGroup --connection-string "HostName=MyExampleHub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=XNBhoasdfhqRlgGnasdfhivtshcwh4bJwe7c0RIGuWsirW0=" --location westus

O DPS também dá suporte à vinculação de Hubs IoT usando a API REST do recurso Criar ou Atualizar DPS, os modelos do Resource Manager e os SDKs de Gerenciamento de DPS.

Atualizar um hub IoT vinculado

Você pode atualizar as configurações em um hub IoT vinculado para alterar o peso da alocação, se políticas de alocação podem ser aplicadas a ele e a cadeia de conexão que o DPS usa para se conectar a ele. Quando você atualiza as configurações de um hub IoT, as alterações entram em vigor imediatamente, seja o hub IoT especificado em um registro ou usado por padrão.

Usar o portal do Azure para atualizar um hub IoT vinculado

Na portal do Azure, você pode atualizar as configurações Peso da alocação e Aplicar política de alocação.

Para atualizar as configurações de um hub IoT vinculado usando o portal do Azure:

  1. No menu à esquerda da instância do DPS, selecione Hubs IoT vinculados e, em seguida, selecione o Hub IoT na lista.

  2. Na página Detalhes do hub IoT vinculado:

    Screenshot that shows the linked IoT hub details page. .

    • Use o controle deslizante de Peso da alocação ou a caixa de texto para escolher um peso entre um e 1000. O padrão é um.

    • Defina a opção Aplicar política de alocação para especificar se o hub IoT vinculado deve ser incluído na alocação.

  3. Salve suas configurações.

Observação

Você não pode atualizar a cadeia de conexão que o DPS usa para se conectar ao hub IoT do portal do Azure. Em vez disso, use a CLI do Azure para atualizar a cadeia de conexão ou exclua o hub IoT vinculado da instância do DPS e vincule-o novamente. Para saber mais, confira Atualizar chaves para hubs IoT vinculados.

Usar a CLI do Azure para atualizar um hub IoT vinculado

Com a CLI do Azure, você pode atualizar as configurações Peso da alocação, Aplicar política de alocação e Cadeia de conexão.

Use o comando az iot dps linked-hub update para atualizar o peso da alocação ou aplicar as configurações de políticas de alocação. Por exemplo, o seguinte comando define o peso da alocação e aplica a política de alocação para um hub IoT vinculado:

az iot dps linked-hub update --dps-name MyExampleDps --resource-group MyResourceGroup --linked-hub MyExampleHub --allocation-weight 2 --apply-allocation-policy true

Use o comando az iot dps update para atualizar a cadeia de conexão de um hub IoT vinculado. Você pode usar o parâmetro --set junto com a cadeia de conexão da política de acesso compartilhado do hub IoT que deseja usar. Para conhecer os detalhes, confira Atualizar chaves para hubs IoT vinculados.

O DPS também dá suporte à atualização de Hubs IoT vinculados usando a API REST do recurso Criar ou Atualizar DPS, os modelos do Resource Manager e os SDKs de Gerenciamento de DPS.

Excluir um hub IoT vinculado

Quando você exclui um hub IoT vinculado da instância do DPS, ele deixa de ficar disponível para definição em registros futuros. No entanto, ele pode ou não ser removido de alocações em registros existentes:

  • Para registros que não definem explicitamente os hubs IoT aos quais aplicar a política de alocação, um hub IoT vinculado excluído deixa de ficar disponível para alocação.

  • Para registros que definem explicitamente os hubs IoT aos quais aplicar a política de alocação, você precisará remover manual ou programaticamente o hub IoT das configurações de registro para que ele deixe de participar da alocação. Deixar de fazer isso pode resultar em um erro quando um dispositivo tenta ser provisionado por meio do registro.

Usar o portal do Azure para excluir um hub IoT vinculado

Para excluir um hub IoT vinculado da instância do DPS no portal do Azure:

  1. No menu à esquerda da instância do DPS, selecione Hubs IoT vinculados.

  2. Na lista de hubs IoT, marque a caixa de seleção ao lado do hub IoT ou dos hubs IoT que deseja excluir. Em seguida, selecione Excluir na parte superior da página e confirme sua escolha quando solicitado.

Usar a CLI do Azure para excluir um hub IoT vinculado

Use o comando az iot dps linked-hub delete para remover um hub IoT vinculado da instância do DPS. Por exemplo, o seguinte comando remove o hub IoT chamado MyExampleHub:

az iot dps linked-hub delete --dps-name MyExampleDps --resource-group MyResourceGroup --linked-hub MyExampleHub

O DPS também dá suporte à exclusão de Hubs IoT vinculados da instância do DPS usando a API REST do recurso Criar ou Atualizar DPS, os modelos do Resource Manager e os SDKs de Gerenciamento de DPS.

Atualizar chaves para hubs IoT vinculados

Pode ser necessário girar ou atualizar as chaves simétricas para um hub IoT que foi vinculado ao DPS. Nesse caso, você também precisará atualizar a configuração da cadeia de conexão no DPS para o hub IoT vinculado. Observe que o provisionamento para um hub IoT falhará durante o intervalo entre atualizar uma chave no hub IoT e atualizar sua instância do DPS com a nova cadeia de conexão com base nessa chave. Por esse motivo, recomendamos usar a CLI do Azure para atualizar suas chaves, pois você pode atualizar a cadeia de conexão no hub vinculado diretamente. Com o portal do Azure, você precisa excluir o hub IoT da instância do DPS e vinculá-lo novamente para atualizar a cadeia de conexão.

Usar o portal do Azure para atualizar chaves

Não é possível atualizar a configuração da cadeia de conexão para um Hub IoT vinculado ao usar portal do Azure. Em vez disso, você precisa excluir o hub IoT vinculado da instância do DPS e adicioná-lo novamente.

Para atualizar chaves simétricas para um hub IoT vinculado no portal do Azure:

  1. No menu esquerdo da instância do DPS no portal do Azure, selecione o Hub IoT para o qual deseja atualizar as chaves.

  2. Na página Detalhes do hub IoT vinculado, tome nota dos valores de Peso da alocação e Aplicar política de alocação. Você precisará desses valores ao vincular novamente o hub IoT à instância do DPS mais tarde. Em seguida, selecione Gerenciar Recurso para ir para o hub IoT.

  3. No menu esquerdo do hub IoT, em Configurações de segurança, selecione Políticas de acesso compartilhado.

  4. Em Políticas de acesso compartilhado, em Gerenciar políticas de acesso compartilhado, selecione a política que sua instância do DPS usa para se conectar ao hub IoT vinculado.

  5. Na parte superior da página, selecione Regenerar chave primária, Regenerar chave secundária ou Trocar chaves e confirme a escolha quando solicitado.

  6. Navegue de volta para a instância do DPS.

  7. Siga as etapas em Excluir um hub IoT para excluir o hub IoT da instância do DPS.

  8. Siga as etapas em Vincular um hub IoT para vincular novamente o hub IoT à sua instância do DPS com a nova cadeia de conexão da política.

  9. Se precisar restaurar o peso da alocação e aplicar as configurações da política de alocação, siga as etapas em Atualizar um hub IoT vinculado usando os valores salvos na etapa 2.

Usar a CLI do Azure para atualizar chaves

Para atualizar chaves simétricas para um hub IoT vinculado com o CLS do Azure:

  1. Use o comando az iot hub policy renew-key para trocar ou regenerar as chaves simétricas da política de acesso compartilhado no hub IoT. Por exemplo, o seguinte comando renova a chave primária da política de acesso compartilhado iothubowner em um hub IoT:

    az iot hub policy renew-key --hub-name MyExampleHub --name owner --rk primary
    
  2. Use o comando az iot hub connection-string show para obter a nova cadeia de conexão da política de acesso compartilhado. Por exemplo, o seguinte comando obtém a cadeia de conexão primária para a política de acesso compartilhado iothubowner para a qual a chave primária foi regenerada no comando anterior:

    az iot hub connection-string show --hub-name MyExampleHub --policy-name owner --key-type primary
    
  3. Use o comando az iot dps linked-hub list para localizar a posição do hub IoT na coleção de hubs IoT vinculados de sua instância do DPS. Por exemplo, o seguinte comando obtém a cadeia de conexão primária para a política de acesso compartilhado owner para a qual a chave primária foi regenerada no comando anterior:

    az iot dps linked-hub list --dos-name MyExampleDps
    

    A saída mostrará a posição do hub IoT vinculado para o qual você deseja atualizar a cadeia de conexão na tabela de hubs IoT vinculados mantidos pela instância do DPS. Nesse caso, é o primeiro hub IoT na lista, MyExampleHub.

    [
    {
        "allocationWeight": null,
        "applyAllocationPolicy": null,
        "connectionString": "HostName=MyExampleHub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=****",
        "location": "centralus",
        "name": "MyExampleHub.azure-devices.net"
    },
    {
        "allocationWeight": null,
        "applyAllocationPolicy": null,
        "connectionString": "HostName=MyExampleHub-2.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=****",
        "location": "centralus",
        "name": "NyExampleHub-2.azure-devices.net"
    }
    ]
    
  4. Use o comando az iot dps update para atualizar a cadeia de conexão do hub IoT vinculado. Use o parâmetro --set e a posição do hub IoT vinculado na tabela properties.iotHubs[] para ter como destino o hub IoT. Por exemplo, o seguinte comando atualiza a cadeia de conexão para MyExampleHub retornada primeiro no comando anterior:

    az iot dps update --name MyExampleDps --set properties.iotHubs[0].connectionString="HostName=MyExampleHub-2.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=NewTokenValue"
    

Próximas etapas