Partilhar via


Atualizar o IoT Edge

Aplica-se a: ícone sim IoT Edge 1.1

Importante

A data de fim do suporte do IoT Edge 1.1 foi 13 de dezembro de 2022. Consulte o Ciclo de Vida de Produtos da Microsoft para obter informações sobre como é suportado este produto, serviço, tecnologia ou API. Para obter mais informações sobre como atualizar para a versão mais recente do IoT Edge, consulte Atualizar o IoT Edge.

À medida que o serviço IoT Edge lança novas versões, convém atualizar seus dispositivos IoT Edge para obter os recursos 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. O primeiro é o subsistema de segurança. Embora a arquitetura do subsistema de segurança tenha mudado entre as versões 1.1 e 1.2, suas responsabilidades gerais permaneceram as mesmas. Ele é executado no dispositivo, lida com tarefas baseadas em segurança e inicia os módulos quando o dispositivo é iniciado. Atualmente, o subsistema de segurança só pode ser atualizado a partir do próprio dispositivo. O segundo componente é o tempo de execução, composto pelos módulos do hub IoT Edge e do agente IoT Edge. Dependendo de como você estrutura sua implantação, o tempo de execução pode ser atualizado a partir do dispositivo ou remotamente.

Você deve atualizar o tempo de execução do IoT Edge e as camadas de aplicativos usando a mesma versão de lançamento. Embora versões incompatíveis sejam suportadas, elas não são testadas juntas. Use as seguintes seções neste artigo para atualizar as camadas de tempo de execução e aplicativo em um dispositivo:

  1. Atualizar o subsistema de segurança
  2. Atualizar os contêineres de tempo de execução
  3. Verificar se as versões correspondem
    • 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.
    • Nas configurações de tempo de execução de implantação do dispositivo, verifique se as versões de URI de 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.

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

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 o apt-get ou seu gerenciador de pacotes apropriado para atualizar o módulo de tempo de execução para a versão mais recente.

Atualizar 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 iotedge

Se você quiser atualizar para a versão mais recente do módulo de tempo de execução, use o seguinte comando, que também atualiza o libiothsm-std para a versão mais recente:

sudo apt-get install iotedge

Se você quiser atualizar para uma versão específica do módulo de tempo de execução, especifique a versão na saída da lista apt. Sempre que o iotedge é atualizado, ele tenta atualizar automaticamente o pacote libiothsm-std para sua versão mais recente, o que pode causar um conflito de dependência. Se você não estiver indo para a versão mais recente, certifique-se de direcionar ambos os pacotes para a mesma versão. Por exemplo, o comando a seguir instala uma versão específica da versão 1.1:

sudo apt-get install iotedge=1.1.1 libiothsm-std=1.1.1

Se a versão que você deseja instalar não estiver disponível através do apt-get, você poderá usar curl para direcionar qualquer versão do repositório de versões do IoT Edge. Para qualquer versão que você queira instalar, localize os arquivos libiothsm-std e iotedge apropriados para o seu dispositivo. Para cada arquivo, clique com o botão direito do mouse no link do arquivo e copie o endereço do link. Use o endereço do link para instalar as versões específicas desses componentes:

curl -L <libiothsm-std link> -o libiothsm-std.deb && sudo apt-get install ./libiothsm-std.deb
curl -L <iotedge link> -o iotedge.deb && sudo apt-get install ./iotedge.deb

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.

Localizar a versão do contêiner nos 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 no 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 extrairá as versões mais recentes das imagens de tempo de execução e as iniciará 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.1.1), 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 seção Módulos do IoT Edge, selecione Configurações de tempo de execução.

    Definir configurações de tempo de execução

  3. Em Configurações de tempo de execução, atualize o valor Image para Edge Hub com a versão desejada. Não selecione Salvar ainda.

    Atualizar a versão da imagem do Edge Hub

  4. Feche as configurações do Hub de Borda ou role para baixo e atualize o valor de Imagem para o Agente de Borda com a mesma versão desejada.

    Atualizar a versão do Agente de Hub de Borda

  5. Selecione Guardar.

  6. Selecione Rever + criar, reveja a implementação e selecione Criar.

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, precisarão 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. Uma vez que um segredo é criptografado novamente por um módulo, 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. Observe que 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.3 ou posterior. 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 em execução em seus dispositivos foi atualizado, siga as etapas neste artigo para também atualizar os contêineres de tempo de execução.

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