Tutorial: Atualização de Dispositivo do Hub IoT do Azure usando o agente de referência do simulador do Ubuntu (18.04 x64)

A Atualização de Dispositivo para Hub IoT do Azure é compatível com atualizações baseadas em imagem, em pacotes e em scripts.

As atualizações de imagem fornecem um nível mais alto de confiança no estado final do dispositivo. Normalmente, é mais fácil replicar os resultados de uma atualização de imagem entre um ambiente de pré-produção e um ambiente de produção porque ele não apresenta os mesmos desafios que os pacotes e suas dependências. Devido à natureza atômica, também é possível adotar facilmente um modelo de failover A/B.

Este tutorial orienta você pelas etapas para concluir uma atualização baseada em imagem de ponta a ponta usando a Atualização de Dispositivo para o Hub IoT.

Neste tutorial, você aprenderá a:

  • Baixar e instalar uma imagem.
  • Adicione uma etiqueta ao seu dispositivo IoT.
  • Importar uma atualização.
  • Criar um grupo de dispositivos.
  • Implantar uma atualização de imagem.
  • Monitorar a implantação da atualização.

Pré-requisitos

Se você ainda não fez isso, crie uma conta e uma instância de Atualização de Dispositivo e configure um hub IoT.

Baixe o arquivo zip chamado Tutorial_Simulator.zip de Recursos de Lançamento na última versão e descompacte-o.

Adicionar um dispositivo ao Hub IoT do Azure

Depois que o agente de Atualização de Dispositivo estiver em execução em um dispositivo IoT, você deverá adicionar o dispositivo ao Hub IoT. No Hub IoT, uma cadeia de conexão é gerada para um dispositivo específico.

  1. No portal do Azure, inicie a Atualização de Dispositivo para o Hub IoT.

  2. Crie um novo dispositivo.

  3. No painel esquerdo, vá para Dispositivos. Em seguida, selecione Novo.

  4. Na ID do Dispositivo, insira um nome para o dispositivo. Verifique se a caixa de seleção Chaves de Geração Automática está marcada.

  5. Selecione Salvar.

  6. Agora, você é retornado para a página Dispositivos e o dispositivo que você criou deve estar na lista. Selecione o dispositivo.

  7. No modo de exibição do dispositivo, selecione o ícone Copiar ao lado da Cadeia de Conexão Primária.

  8. Cole os caracteres copiados em algum lugar para uso posterior nas seguintes etapas:

    Essa cadeia de caracteres copiada é a cadeia de conexão do dispositivo.

Instalar um agente de Atualização de Dispositivo para testá-lo como um simulador

  1. Siga as instruções para instalar o runtime do Azure IoT Edge.

    Observação

    O agente de Atualização de Dispositivo não depende do IoT Edge. Mas ele depende do daemon do Serviço de Identidade IoT instalado com o IoT Edge (1.2.0 e superior) para obter uma identidade e se conectar ao Hub IoT.

    Embora não esteja coberto neste tutorial, o daemon do Serviço de Identidade IoT pode ser instalado autônomo em dispositivos IoT baseados em Linux. A sequência de instalação é importante. O agente do pacote de Atualização de Dispositivo deve ser instalado após o Serviço de Identidade IoT. Caso contrário, o agente de pacote não será registrado como um componente autorizado para estabelecer uma conexão com o Hub IoT.

  2. Em seguida, instale os pacotes .deb do Agente de Atualização de Dispositivo.

    sudo apt-get install deviceupdate-agent deliveryoptimization-plugin-apt 
    
  3. Para inserir a cadeia de conexão principal do módulo do dispositivo IoT (ou dispositivo, dependendo de como você provisionou o dispositivo com a Atualização do Dispositivo) no arquivo de configuração, execute o seguinte comando:

    sudo nano /etc/adu/du-config.json
    
  4. Configure o agente para ser executado como um simulador. Execute o seguinte comando no dispositivo IoT para que o agente de Atualização de Dispositivos invoque o manipulador do simulador para processar uma atualização de pacote com o APT ('microsoft/apt:1'):

    sudo /usr/bin/AducIotAgent --register-content-handler /var/lib/adu/extensions/sources/libmicrosoft_simulator_1.so --update-type 'microsoft/apt:1'
    

    Para registrar e invocar o manipulador de simulador, use o seguinte formato, preenchendo os espaços reservados:

    sudo /usr/bin/AducIotAgent --register--content-handler <full path to the handler file> --update-type <update type name>

  5. Você precisará do arquivo sample-du-simulator-data.json do Tutorial_Simulator.zip baixado nos pré-requisitos.

    Abra o arquivo sample-du-simulator-data.json e copie o conteúdo para a área de transferência:

    nano sample-du-simulator-data.json
    

    Selecione o conteúdo do arquivo e pressione Ctrl+C. Pressione Ctrl+X para fechar o arquivo e não salve as alterações.

    Execute o seguinte comando para criar e editar o du-simulator-data.json arquivo na pasta tmp:

    sudo nano /tmp/du-simulator-data.json
    

    Pressione Ctrl+V para colar o conteúdo no editor. Selecione Ctrl+X para salvar as alterações e, em seguida, Y.

    Alterar permissões:

    sudo chown adu:adu /tmp/du-simulator-data.json
    sudo chmod 664 /tmp/du-simulator-data.json
    

    Se /tmp não existir, então:

     sudo mkdir/tmp
     sudo chown root:root/tmp
     sudo chmod 1777/tmp
    
  6. Reinicie o agente de Atualização de Dispositivo executando o seguinte comando:

     sudo systemctl restart adu-agent
    

A atualização de dispositivo para software do Hub IoT do Azure está sujeita aos seguintes termos de licença:

Leia os termos de licença antes de usar o agente. Sua instalação e uso constituem sua aceitação desses termos. Se você não concordar com os termos de licença, não use a Atualização de Dispositivo para o agente do Hub IoT.

Observação

Após os testes com o simulador, execute o seguinte comando para invocar o manipulador do APT e implantar atualizações de pacote por transmissão sem fio:

# sudo /usr/bin/AducIotAgent --register-content-handler /var/lib/adu/extensions/sources/libmicrosoft_apt_1.so --update-type 'microsoft/a pt:1'

Adicionar uma etiqueta ao seu dispositivo

  1. Entre no portal do Azure e vá para o Hub IoT.

  2. Em Dispositivos no painel esquerdo, localize seu dispositivo IoT e vá para o dispositivo gêmeo ou módulo gêmeo.

  3. No módulo gêmeo do agente de Atualização de Dispositivo, exclua quaisquer valores de tag de Atualização de Dispositivo existentes definindo-os como nulo. Se você estiver usando a identidade do dispositivo com um agente de Atualização de Dispositivo, faça essas alterações no dispositivo gêmeo.

  4. Adicione um novo valor de rótulo da Atualização de dispositivo, conforme mostrado:

        "tags": {
                "ADUGroup": "<CustomTagValue>"
                }
    

Importar a atualização

  1. Você precisará dos arquivos TutorialImportManifest_Sim.importmanifest.json e adu-update-image-raspberrypi3.swu do Tutorial_Simulator.zip que foi baixado nos pré-requisitos. O arquivo de atualização é reutilizado no tutorial do Raspberry Pi. Como a atualização neste tutorial é simulada, o conteúdo do arquivo específico não importa.

  2. Entre no portal do Azure e vá para o hub IoT com a Atualização de Dispositivo. No painel esquerdo, em Gerenciamento Automático de Dispositivos, selecione Atualizações.

  3. Selecione a guia Atualizações .

  4. Selecione + Importar Nova Atualização.

  5. Selecione + Selecionar no contêiner de armazenamento. Selecione uma conta existente ou crie uma nova conta usando + conta de armazenamento. Em seguida, selecione um contêiner existente ou crie um novo contêiner usando + Contêiner. Esse contêiner será usado para preparar os arquivos de atualização para importação.

    Observação

    É recomendável usar um contêiner novo cada vez que você importar uma atualização para evitar a importação acidental de arquivos de atualizações anteriores. Se você não usar um contêiner novo, não deixe de excluir todos os arquivos do contêiner existente antes de concluir esta etapa.

    Captura de tela que mostra contas de armazenamento e contêineres.

  6. No contêiner, selecione Carregar e vá para os arquivos baixados na etapa 1. Depois de selecionar todos os arquivos de atualização, selecione Carregar. Em seguida, clique no botão Selecionar para retornar à página de Importação de Atualização.

    Captura de tela que mostra a seleção de arquivos carregados.

    Esta captura de tela mostra a etapa de importação. Os nomes de arquivo podem não corresponder aos usados no exemplo.

  7. Na página Import update, examine os arquivos a serem importados. Em seguida, selecione Importar atualização para iniciar o processo de importação.

    Captura de tela que mostra a atualização de importação.

  8. O processo de importação começa e a tela muda para a seção Importar Histórico . Quando a coluna Status indicar que a importação foi bem-sucedida, selecione o cabeçalho Atualizações Disponíveis. Agora a atualização importada deve estar presente na lista.

    Captura de tela que mostra o status do trabalho.

Saiba mais sobre como importar atualizações.

Criar um grupo de atualizações

  1. Vá para a guia Grupos e Implantações na parte superior da página.

    Captura de tela que mostra dispositivos desagrupados.

  2. Selecione Adicionar grupo para criar um novo grupo.

    Captura de tela que mostra a adição do grupo de dispositivos.

  3. Selecione uma marca do Hub IoT e uma Classe de Dispositivo na lista. Em seguida, selecione Criar grupo.

    Captura de tela que mostra a seleção de tag.

  4. Depois que o grupo é criado, o gráfico de conformidade das atualizações e a lista de grupos são atualizados. O gráfico de conformidade de atualização mostra a contagem de dispositivos em vários estados de conformidade: na atualização mais recente, novas atualizações disponíveis e atualizações em andamento. Saiba mais sobre a conformidade de atualização.

    Captura de tela que mostra a visão de conformidade de atualização.

  5. Você deverá ver o grupo recém-criado e as atualizações disponíveis para os dispositivos no novo grupo. Se houver dispositivos que não atendem aos requisitos de classe de dispositivo do grupo, eles aparecerão em um grupo inválido correspondente. Para implantar a melhor atualização disponível para o novo grupo definido pelo usuário nessa exibição, selecione Implantar ao lado do grupo.

Saiba mais sobre como adicionar marcas e criar grupos de atualização.

Implantar a atualização

  1. Depois que o grupo for criado, você deverá ver uma nova atualização disponível para o grupo de dispositivos. Um link para a atualização deve estar em Melhor atualização. Talvez você precise atualizar novamente. Saiba mais sobre a conformidade de atualização.

  2. Escolha o grupo de destino selecionando o nome do grupo. Você é direcionado para os detalhes do grupo nas noções básicas do grupo.

    Captura de tela que mostra os detalhes do grupo.

  3. Para iniciar a implantação, vá para a guia Implantação atual . Selecione o link de implantação ao lado da atualização desejada na seção Atualizações disponíveis . A melhor atualização disponível para um grupo é indicada com um destaque Best.

    Captura de tela que mostra a seleção de uma atualização.

  4. Agende sua implantação para começar imediatamente ou no futuro. Em seguida, selecione Criar.

    Captura de tela que mostra Criar implantação.

  5. Nos detalhes da implantação, o Status se volta para Ativo. A atualização implantada é marcada com (em implantação).

    Captura de tela que mostra que a implantação está ativa.

  6. Exiba o gráfico de conformidade para ver se a atualização está em andamento.

  7. Depois de atualizar seu dispositivo com êxito, você verá que o gráfico de conformidade e os detalhes da implantação atualizados refletem as mesmas informações.

    Captura de tela que mostra a atualização bem-sucedida.

Monitorar a implantação da atualização

  1. Selecione a guia Histórico de Implantações na parte superior da página.

    Captura de tela que mostra o histórico de implantação.

  2. Selecione Detalhes ao lado da implantação que você criou.

    Captura de tela que mostra os detalhes da implantação.

  3. Selecione Atualizar para exibir os detalhes de status mais recentes.

Você acabou de concluir com êxito uma atualização de imagem de ponta a ponta usando a Atualização de Dispositivos do IoT Hub com o agente de referência do simulador do Ubuntu (18.04 x64).

Limpar os recursos

Quando não for mais necessário, limpe sua conta de Atualização de Dispositivo, a instância, o Hub IoT e o dispositivo IoT.

Próximas etapas