Migrar dispositivos para o Hub IoT do Azure

Se você decidir migrar de uma solução baseada no IoT Central para uma solução baseada no Hub IoT, precisará alterar a configuração de todos os dispositivos atualmente conectados ao seu aplicativo. A ferramenta IoTC Migrator automatiza esse processo de migração de dispositivos.

A ferramenta do migrador:

  • Cria registros de dispositivos em seu hub IoT para os dispositivos que atualmente se conectam ao seu aplicativo IoT Central.
  • Usa um comando para enviar o escopo de ID da instância do Serviço de Provisionamento de Dispositivo (DPS) associada ao seu hub IoT para seus dispositivos.

A ferramenta requer que seus dispositivos conectados implementem um comando DeviceMove definido no modelo de dispositivo em seu aplicativo IoT Central. A carga útil do comando é o escopo de ID da instância DPS de destino. Quando um dispositivo recebe esse comando, ele deve:

  • Pare de enviar telemetria e desconecte-se do aplicativo IoT Central.
  • Provisione-se com DPS usando o novo escopo de ID na carga útil do comando.
  • Use o resultado do provisionamento para se conectar ao hub IoT de destino e começar a enviar telemetria novamente.

Gorjeta

Você também pode usar a ferramenta migrador para migrar dispositivos entre aplicativos IoT Cental ou de um hub IoT para um aplicativo IoT Central.

Minimize as interrupções

Para minimizar interrupções, você pode migrar seus dispositivos em fases. A ferramenta migrador usa grupos de dispositivos para mover dispositivos do IoT Central para seu hub IoT. Divida sua frota de dispositivos em grupos de dispositivos, como dispositivos no Texas, dispositivos em Nova York e dispositivos no resto dos EUA. Em seguida, migre cada grupo de dispositivos de forma independente.

Aviso

Não é possível adicionar dispositivos não atribuídos a um grupo de dispositivos. Portanto, atualmente não é possível usar a ferramenta migrador para migrar dispositivos não atribuídos.

Minimize o impacto nos negócios seguindo estas etapas:

  • Crie a solução PaaS e execute-a em paralelo com o aplicativo IoT Central.

  • Configure a exportação contínua de dados no aplicativo IoT Central e rotas apropriadas para o hub IoT da solução PaaS. Transforme ambos os canais de dados e armazene os dados no mesmo data lake.

  • Migre os dispositivos em fases e verifique em cada fase. Se algo não correr como planejado, retorne os dispositivos ao IoT Central.

  • Depois de migrar todos os dispositivos para a solução PaaS e exportar totalmente seus dados do IoT Central, você poderá remover os dispositivos da solução IoT Central.

Após a migração, os dispositivos não são excluídos automaticamente do aplicativo IoT Central. Esses dispositivos continuam a ser cobrados como cobranças do IoT Central por todos os dispositivos provisionados no aplicativo. Quando você remove esses dispositivos do aplicativo IoT Central, não é mais cobrado por eles. Eventualmente, remova o aplicativo IoT Central.

Mover dados existentes para fora do IoT Central

Você pode configurar o IoT Central para exportar continuamente valores de telemetria e propriedade. Os destinos de exportação são armazenamentos de dados como Azure Data Lake, Hubs de Eventos e Webhooks. Você pode exportar modelos de dispositivo usando a interface do usuário do IoT Central ou a API REST. A API REST permite exportar os usuários em um aplicativo do IoT Central.

Pré-requisitos

Você precisa dos seguintes pré-requisitos para concluir as etapas de migração do dispositivo:

  • O aplicativo IoT Central de origem onde seus dispositivos se conectam atualmente.
  • O hub IoT de destino para onde você deseja mover os dispositivos. Esse hub IoT deve estar vinculado a uma instância do DPS.
  • node.js e npm instalados na máquina local onde você executa a ferramenta Migrator.

Requisitos do dispositivo

Os dispositivos que você deseja migrar devem implementar o comando DeviceMove em um componente chamado migração. O comando payload contém o escopo de ID da instância DPS de destino. O repositório da ferramenta migrator inclui um modelo de componente DTDL de exemplo que define o comando DeviceMove. Você pode adicionar esse componente aos seus modelos de dispositivo existentes.

A ferramenta assume que o nome do componente é migration e que o ID da interface é dtmi:azureiot:DeviceMigration;1:

Screenshot that highlights the component name and interface ID.

O repositório de ferramentas também inclui código de exemplo que mostra como um dispositivo deve implementar o comando DeviceMove .

Configuração da ferramenta

Conclua as seguintes tarefas de configuração para se preparar para a migração:

Aplicação Microsoft Entra

A ferramenta migrador requer um registro de aplicativo Microsoft Entra para permitir que ele se autentique com sua assinatura do Azure:

  1. Navegue até Registros do aplicativo Microsoft Entra ID > do portal > do Azure.

  2. Selecione Novo Registo.

  3. Insira um nome como "aplicativo IoTC Migrator".

  4. Selecione Contas em qualquer diretório organizacional (Qualquer diretório Microsoft Entra - Multilocatário) e contas pessoais da Microsoft (por exemplo, Skype, Xbox).

  5. Selecione Aplicativo de página única (SPA).

  6. Insira http://localhost:3000 como o URI de redirecionamento. Você adiciona esse valor à configuração do aplicativo migrator mais tarde.

  7. Selecione Registar.

  8. Anote os valores de ID do aplicativo (cliente) e ID do diretório (locatário). Use estes valores posteriormente para configurar o aplicativo migrador:

    Screenshot that shows the Microsoft Entra application in the Azure portal.

  9. Navegue até a página Manifesto no registro e substitua requiredResourceAccess o conteúdo do pela seguinte configuração:

    [
      {
        "resourceAppId": "9edfcdd9-0bc5-4bd4-b287-c3afc716aac7",
        "resourceAccess": [
          {
            "id": "73792908-5709-46da-9a68-098589599db6",
            "type": "Scope"
          }
        ]
      },
      {
        "resourceAppId": "797f4846-ba00-4fd7-ba43-dac1f8f63013",
        "resourceAccess": [
          {
            "id": "41094075-9dad-400e-a0bd-54e686782033",
            "type": "Scope"
          }
        ]
      },
      {
        "resourceAppId": "00000003-0000-0000-c000-000000000000",
        "resourceAccess": [
          {
            "id": "e1fe6dd8-ba31-4d61-89e7-88639da4683d",
            "type": "Scope"
          }
        ]
      }
    ]
    
  10. Guarde as alterações.

Adicionar as chaves de dispositivo ao DPS

Adicione as chaves de assinatura de acesso compartilhado ou certificados X.509 do seu aplicativo IoT Central ao seu grupo de alocação DPS.

Se seus dispositivos usam assinaturas de acesso compartilhado para autenticar seu aplicativo IoT Central:

  • Em seu aplicativo IoT Central, navegue até Grupos de conexão de Dispositivo de Permissões>.
  • Selecione o grupo de inscrição que seus dispositivos usam.
  • Anote as chaves primária e secundária.
  • No portal do Azure, navegue até sua instância do DPS.
  • Selecione Gerir inscrições.
  • Crie um novo registro e defina o tipo de atestado como Chave Simétrica, desmarque Gerar chaves automaticamente e adicione as chaves primária e secundária que você anotou.
  • Selecione Guardar.

Se seus dispositivos usam certificados X.509 para autenticar seu aplicativo IoT Central:

  • No portal do Azure, navegue até sua instância do DPS.
  • Selecione Certificados e, em seguida, selecione Adicionar.
  • Carregue e verifique os certificados X.509 raiz ou intermediários que você usa em seu aplicativo IoT Central.
  • Selecione Gerir inscrições.
  • Crie um novo registro e defina o tipo de atestado como Certificado e, em seguida, selecione os certificados primários e secundários carregados.
  • Selecione Guardar.

Baixar e configurar a ferramenta migrador

Transfira ou clone uma cópia da ferramenta migradora para a sua máquina local:

git clone https://github.com/Azure/iotc-migrator.git

Na raiz do repositório baixado, crie um arquivo .env . Atualize os REACT_APP_AAD_APP_CLIENT_IDvalores , REACT_APP_AAD_APP_TENANT_IDe com REACT_APP_AAD_APP_REDIRECT_URI os valores do registro do aplicativo Microsoft Entra que você criou anteriormente. Em seguida, salve as alterações:

PORT=3000
REACT_APP_AAD_APP_CLIENT_ID=<your-AAD-Application-(client)-ID>
REACT_APP_AAD_APP_TENANT_ID=<your-AAD-Directory-(tenant)-ID>
REACT_APP_AAD_APP_REDIRECT_URI=http://localhost:3000

Gorjeta

Verifique se o REACT_APP_AAD_APP_REDIRECT_URI URI de redirecionamento você usou no registro do aplicativo Microsoft Entra.

Em seu ambiente de linha de comando, navegue até a raiz do iotc-migrator repositório. Em seguida, execute os seguintes comandos para instalar os pacotes de node.js necessários e, em seguida, execute a ferramenta:

npm install
npm start

Depois que o aplicativo migrador for iniciado, navegue até http://localhost:3000 para exibir a ferramenta. Inicie sessão quando lhe for pedido.

Migrar dispositivos

Use a ferramenta para migrar seus dispositivos em lotes. Insira os detalhes da migração na página Nova migração :

  1. Insira um nome para a migração.
  2. Selecione um grupo de dispositivos no seu aplicativo IoT Central.
  3. Selecione um modelo de dispositivo que inclua a definição de comando DeviceMove .
  4. Selecione Mover para seu próprio Hub IoT do Azure.
  5. Selecione a instância do DPS vinculada ao seu hub IoT de destino.
  6. Selecione Migrar. A ferramenta solicita que você copie as chaves do seu aplicativo IoT Central para o grupo de registro do DPS. Você concluiu anteriormente esta etapa na etapa Adicionar as chaves de dispositivo ao DPS .

Screenshot of migration tool that shows the migration definition.

A ferramenta agora registra todos os dispositivos conectados que correspondem ao filtro de dispositivo de destino no hub IoT de destino. Em seguida, a ferramenta cria um trabalho em seu aplicativo IoT Central para chamar o método DeviceMove em todos esses dispositivos. O comando payload contém o escopo de ID da instância DPS de destino.

Verificar a migração

Use a página Status da migração na ferramenta migrador para monitorar o progresso:

Screenshot that shows the migration status page in the tool.

Selecione um trabalho na página Status da migração para exibir o status do trabalho em seu aplicativo do IoT Central. Use esta página para exibir o status dos dispositivos individuais no trabalho:

Screenshot showing completed migration status for IoT Central job.

Dispositivos que migraram com êxito:

  • Mostrar como Desconectado na página de dispositivos em seu aplicativo IoT Central.

  • Mostrar como registrado e provisionado em seu hub IoT:

    Screenshot of IoT Hub in the Azure portal that shows the provisioned devices.

  • Agora estão enviando telemetria para seu hub IoT

    Screenshot of IoT Hub in the Azure portal that shows telemetry metrics for the migrated devices.