Atualizar o IoT Edge

Aplica-se a:IoT Edge 1.4 checkmark IoT Edge 1.4

Importante

O IoT Edge 1.4 é a versão suportada. Se tiver uma versão anterior, consulte Atualizar IoT Edge.

À medida que o serviço IoT Edge lança novas versões, atualize os seus dispositivos IoT Edge para obter as funcionalidades e melhorias de segurança mais recentes. Este artigo fornece informações sobre como atualizar seus dispositivos IoT Edge quando uma nova versão estiver disponível.

Dois componentes lógicos de um dispositivo IoT Edge precisam ser atualizados se você quiser mudar para uma versão mais recente.

  • Subsistema de segurança - Embora a arquitetura do subsistemade segurança tenha mudado entre as versões 1.1 e 1.2, suas responsabilidades permaneceram as mesmas. Ele é executado no dispositivo, lida com tarefas baseadas em segurança e inicia os módulos quando o dispositivo é iniciado. O subsistema de segurança só pode ser atualizado a partir do próprio dispositivo.

  • Tempo de execução do IoT Edge - O tempo de execução do IoT Edge é composto pelos módulos do hub do IoT Edge () e do agente do IoT Edge (edgeHubedgeAgent). Dependendo de como você estrutura sua implantação, o tempo de execução pode ser atualizado do dispositivo ou remotamente.

Como atualizar

Use as seções deste artigo para atualizar o subsistema de segurança e os contêineres de tempo de execução em um dispositivo.

Lançamentos de patches

Quando você atualiza entre versões de patch , por exemplo 1.4.1 para 1.4.2, a ordem de atualização não é importante. Você pode atualizar o subsistema de segurança ou os contêineres de tempo de execução antes ou depois do outro. Para atualizar entre versões de patch:

  1. Atualizar o subsistema de segurança
  2. Atualizar os contêineres de tempo de execução
  3. Verificar se as versões correspondem

Você pode solucionar problemas do processo de atualização a qualquer momento.

Lançamentos maiores ou menores

Ao atualizar entre versões principais ou secundárias, por exemplo, de 1.1 para 1.4, atualize o subsistema de segurança e os contêineres de tempo de execução. Antes de uma versão, testamos o subsistema de segurança e a combinação de versão do contêiner de tempo de execução. Para atualizar entre versões principais ou secundárias de produtos:

  1. No dispositivo, pare o IoT Edge usando o comando sudo systemctl stop iotedge e desinstale.

  2. No dispositivo, atualize seu mecanismo de contêiner, Docker ou Moby.

  3. No dispositivo, instale o IoT Edge.

    Se você estiver importando uma configuração antiga usando iotedge config importo , modifique a imagem [agent.config] do arquivo gerado /etc/aziot/config.toml para usar a imagem 1.4 para edgeAgent.

    Para obter mais informações, consulte Definir configurações de dispositivo do IoT Edge.

  4. No Hub IoT, atualize a implantação do módulo para fazer referência aos módulos de sistema mais recentes.

  5. No dispositivo, inicie o IoT Edge usando sudo iotedge config applyo .

Você pode solucionar problemas do processo de atualização a qualquer momento.

Atualizar o subsistema de segurança

O subsistema de segurança do IoT Edge inclui um conjunto de componentes nativos que precisam ser atualizados usando o gerenciador de pacotes no dispositivo IoT Edge.

Verifique a versão do subsistema de segurança em execução no seu dispositivo usando o comando iotedge version. Se você estiver usando o IoT Edge para Linux no Windows, precisará SSH na máquina virtual Linux para verificar a versão.

Importante

Se você estiver atualizando um dispositivo da versão 1.0 ou 1.1 para a versão mais recente, há diferenças nos processos de instalação e configuração que exigem etapas extras. Para obter mais informações, consulte as etapas mais adiante neste artigo: Caso especial: Atualização da versão 1.0 ou 1.1 para a versão mais recente.

Em dispositivos Linux x64, use apt-get ou seu gerenciador de pacotes apropriado para atualizar o subsistema de segurança para a versão mais recente.

Atualização apt:

sudo apt-get update

Nota

Para obter instruções sobre como obter a configuração de repositório mais recente da Microsoft, consulte as etapas preliminares para instalar o IoT Edge.

Verifique quais versões do IoT Edge estão disponíveis:

apt list -a aziot-edge

Atualizar o IoT Edge:

sudo apt-get install aziot-edge defender-iot-micro-agent-edge

A execução apt-get install aziot-edge atualiza o subsistema de segurança e instala o serviço de identidade, , aziot-identity-servicecomo uma dependência necessária.

É recomendável instalar o microagente com o agente Edge para habilitar o monitoramento de segurança e a proteção de seus dispositivos Edge. Para saber mais sobre o Microsoft Defender para IoT, consulte O que é o Microsoft Defender para IoT para construtores de dispositivos.

Em seguida, reaplique a configuração para garantir que o sistema esteja totalmente atualizado.

sudo iotedge config apply

Atualizar os contêineres de tempo de execução

A maneira como você atualiza o agente do IoT Edge e os contêineres do hub do IoT Edge depende se você usa marcas contínuas (como 1.1) ou tags específicas (como 1.1.1) em sua implantação.

Verifique a versão do agente do IoT Edge e dos módulos do hub do IoT Edge atualmente no seu dispositivo usando os comandos iotedge logs edgeAgent ou iotedge logs edgeHub. Se você estiver usando o IoT Edge para Linux no Windows, precisará SSH na máquina virtual Linux para verificar as versões do módulo de tempo de execução.

Screenshot of where to find the container version in console logs.

Compreender as tags do IoT Edge

As imagens do agente do IoT Edge e do hub do IoT Edge são marcadas com a versão do IoT Edge à qual estão associadas. Há duas maneiras diferentes de usar tags com as imagens de tempo de execução:

  • Etiquetas contínuas - Utilize apenas os dois primeiros valores do número da versão para obter a imagem mais recente que corresponda a esses dígitos. Por exemplo, o 1.1 é atualizado sempre que há uma nova versão para apontar para a versão 1.1.x mais recente. Se o tempo de execução do contêiner em seu dispositivo IoT Edge extrair a imagem novamente, os módulos de tempo de execução serão atualizados para a versão mais recente. Implantações do portal do Azure padrão para marcas contínuas. Esta abordagem é sugerida para fins de desenvolvimento.

  • Tags específicas - Use os três valores do número da versão para definir explicitamente a versão da imagem. Por exemplo, a versão 1.1.0 não será alterada após sua versão inicial. Você pode declarar um novo número de versão no manifesto de implantação quando estiver pronto para atualizar. Esta abordagem é sugerida para fins de produção.

Atualizar uma imagem de etiqueta contínua

Se você usar tags contínuas em sua implantação (por exemplo, mcr.microsoft.com/azureiotedge-hub:1.1), precisará forçar o tempo de execução do contêiner em seu dispositivo para extrair a versão mais recente da imagem.

Exclua a versão local da imagem do seu dispositivo IoT Edge. Em máquinas Windows, desinstalar o subsistema de segurança também remove as imagens de tempo de execução, portanto, você não precisa dar essa etapa novamente.

docker rmi mcr.microsoft.com/azureiotedge-hub:1.1
docker rmi mcr.microsoft.com/azureiotedge-agent:1.1

Pode ser necessário usar o sinalizador de força -f para remover as imagens.

O serviço IoT Edge extrai as versões mais recentes das imagens de tempo de execução e as inicia automaticamente no seu dispositivo novamente.

Atualizar uma imagem de tag específica

Se você usar tags específicas em sua implantação (por exemplo, mcr.microsoft.com/azureiotedge-hub:1.4), tudo o que você precisa fazer é atualizar a tag em seu manifesto de implantação e aplicar as alterações ao seu dispositivo.

  1. No Hub IoT no portal do Azure, selecione seu dispositivo IoT Edge e selecione Definir módulos.

  2. Na guia Módulos, selecione Configurações de tempo de execução.

    Screenshot that shows location of the Runtime Settings tab.

  3. Em Configurações de tempo de execução, atualize o valor de URI de imagem na seção Agente de Borda com a versão desejada. Não selecione Candidatar-se ainda.

    Screenshot that shows where to update the image URI with your version in the Edge Agent.

  4. Selecione a guia Edge Hub e atualize o valor do URI da imagem com a mesma versão desejada.

    Screenshot that shows where to update the image URI with your version in the Edge Hub.

  5. Selecione Aplicar para salvar as alterações.

  6. Selecione Revisar + criar, revise a implantação conforme visto no arquivo JSON e selecione Criar.

Verificar se as versões correspondem

  1. No dispositivo, use iotedge version para verificar a versão do subsistema de segurança. A saída inclui os números de versão principal, secundária e de revisão. Por exemplo, iotedge 1.4.2.

  2. Nas configurações de tempo de execução da implantação do dispositivo, verifique se as versões do URI da imagem edgeHub e edgeAgent correspondem à versão principal e secundária do subsistema de segurança. Se a versão do subsistema de segurança for 1.4.2, as versões de imagem serão 1.4. Por exemplo, mcr.microsoft.com/azureiotedge-hub:1.4 e mcr.microsoft.com/azureiotedge-agent:1.4.

Nota

Atualize o subsistema de segurança do IoT Edge e os contêineres de tempo de execução para a mesma versão de lançamento suportada. Embora sejam suportadas versões desajustadas, não testámos todas as combinações de versões.

Para encontrar a versão mais recente do Azure IoT Edge, consulte Versões do Azure IoT Edge.

Caso especial: Atualização da versão 1.0 ou 1.1 para a versão mais recente

A partir da versão 1.2, o serviço IoT Edge usa um novo nome de pacote e tem algumas diferenças nos processos de instalação e configuração. Se você tiver um dispositivo IoT Edge executando a versão 1.0 ou 1.1, use estas instruções para saber como atualizar para a versão mais recente.

Algumas das principais diferenças entre a versão mais recente e a versão 1.1 e anterior incluem:

  • O nome do pacote mudou de iotedge para aziot-edge.
  • A embalagem libiothsm-std não é mais usada. Se você usou o pacote padrão fornecido como parte da versão do IoT Edge, suas configurações podem ser transferidas para a nova versão. Se você usou uma implementação diferente do libiothsm-std, todos os certificados fornecidos pelo usuário, como o certificado de identidade do dispositivo, a CA do dispositivo e o pacote de confiança, precisam ser reconfigurados.
  • Um novo serviço de identidade, aziot-identity-service foi introduzido como parte da versão 1.2. Este serviço lida com o provisionamento e o gerenciamento de identidade para o IoT Edge e para outros componentes de dispositivo que precisam se comunicar com o Hub IoT, como a Atualização de Dispositivo para o Hub IoT.
  • O arquivo de configuração padrão tem um novo nome e local. Anteriormente /etc/iotedge/config.yaml, esperava-se que as informações de configuração do dispositivo estivessem disponíveis /etc/aziot/config.toml por padrão. O iotedge config import comando pode ser usado para ajudar a migrar informações de configuração do local antigo e da sintaxe para o novo.
    • O comando import não pode detetar ou modificar regras de acesso ao TPM (trusted platform module) de um dispositivo. Se o seu dispositivo usa o atestado TPM, você precisa atualizar manualmente o arquivo /etc/udev/rules.d/tpmaccess.rules para dar acesso ao serviço aziottpm. Para obter mais informações, consulte Conceder acesso ao IoT Edge ao TPM.
  • A API de carga de trabalho na versão mais recente salva segredos criptografados em um novo formato. Se você atualizar de uma versão mais antiga para a versão mais recente, a chave mestra de criptografia existente será importada. A API de carga de trabalho pode ler segredos salvos no formato anterior usando a chave de criptografia importada. No entanto, a API de carga de trabalho não pode gravar segredos criptografados no formato antigo. Quando um módulo criptografa novamente um segredo, ele é salvo no novo formato. Os segredos encriptados na versão mais recente são ilegíveis pelo mesmo módulo na versão 1.1. Se você persistir os dados criptografados em uma pasta ou volume montado no host, crie sempre uma cópia de backup dos dados antes de atualizar para manter a capacidade de fazer downgrade, se necessário.
  • Para compatibilidade com versões anteriores ao conectar dispositivos que não suportam TLS 1.2, você pode configurar o Edge Hub para ainda aceitar TLS 1.0 ou 1.1 por meio da variável de ambiente SslProtocols. O suporte para TLS 1.0 e 1.1 no Hub IoT é considerado legado e também pode ser removido do Edge Hub em versões futuras.  Para evitar problemas futuros, use o TLS 1.2 como a única versão do TLS ao se conectar ao Edge Hub ou ao Hub IoT.
  • A visualização do broker MQTT experimental no Edge Hub 1.2 terminou e não está incluída no Edge Hub 1.4. Continuamos a refinar nossos planos para um corretor MQTT com base no feedback recebido. Enquanto isso, se você precisar de um broker MQTT compatível com padrões no IoT Edge, considere implantar um broker de código aberto como o Mosquitto como um módulo IoT Edge.
  • A partir da versão 1.2, quando uma imagem de suporte é removida de um contêiner, o contêiner continua em execução e persiste nas reinicializações. Na versão 1.1, quando uma imagem de suporte é removida, o contêiner é imediatamente recriado e a imagem de suporte é atualizada.

Antes de automatizar qualquer processo de atualização, valide se ele funciona em máquinas de teste.

Quando estiver pronto, siga estas etapas para atualizar o IoT Edge em seus dispositivos:

  1. Atualizar apt.

    sudo apt-get update
    
  2. Desinstale a versão anterior do IoT Edge, deixando os arquivos de configuração no lugar.

    sudo apt-get remove iotedge
    
  3. Instale a versão mais recente do IoT Edge, juntamente com o serviço de identidade IoT e o microagente Microsoft Defender for IoT para Edge.

    sudo apt-get install aziot-edge defender-iot-micro-agent-edge
    

É recomendável instalar o microagente com o agente Edge para habilitar o monitoramento de segurança e a proteção de seus dispositivos Edge. Para saber mais sobre o Microsoft Defender para IoT, consulte O que é o Microsoft Defender para IoT para construtores de dispositivos.

  1. Importe seu arquivo config.yaml antigo para seu novo formato e aplique as informações de configuração.

    sudo iotedge config import
    

Agora que o serviço IoT Edge mais recente está em execução em seus dispositivos, você também precisa atualizar os contêineres de tempo de execução para a versão mais recente. O processo de atualização para contêineres de tempo de execução é o mesmo que o processo de atualização para o serviço IoT Edge.

Resolução de problemas

Você pode visualizar os logs do seu sistema a qualquer momento, executando os seguintes comandos do seu dispositivo.

  • Inicie a solução de problemas usando o comando check . Ele executa uma coleção de testes de configuração e conectividade para problemas comuns.

    sudo iotedge check --verbose
    
  • Para exibir o status do sistema IoT Edge, execute:

    sudo iotedge system status 
    
  • Para exibir logs de componentes do host, execute:

    sudo iotedge system logs
    
  • Para verificar se há problemas recorrentes relatados com o edgeAgent e o edgeHub, execute:

    Certifique-se de substituir <module> pelo seu próprio nome de módulo. Se não houver problemas, você não verá nenhuma saída.

    sudo iotedge logs <module>
    

Para obter mais informações, consulte Solucionar problemas do dispositivo IoT Edge.

Próximos passos

Veja as versões mais recentes do Azure IoT Edge.

Mantenha-se atualizado com atualizações e anúncios recentes no blog da Internet das Coisas