Compartilhar via


Atualizar o IoT Edge

Aplica-se a: ícone sim IoT Edge 1.1

Importante

IoT Edge 1.1 a data de término do suporte foi 13 de dezembro de 2022. Confira o Ciclo de Vida do Produto da Microsoft para obter informações sobre o suporte deste 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.

Conforme o serviço do IoT Edge lança novas versões, é recomendável atualizar os dispositivos IoT Edge para os recursos mais recentes e melhorias de segurança. Este artigo fornece informações sobre como atualizar seus dispositivos IoT Edge quando uma nova versão está disponível.

Dois componentes lógicos de um dispositivo IoT Edge precisam ser atualizados caso você queira passar para uma versão mais recente. O primeiro é o subsistema de segurança. Embora a arquitetura do subsistema de segurança tenha sido alterada entre a versão 1.1 e a 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 no próprio dispositivo. O segundo componente é o runtime, composto pelos módulos de agente do IoT Edge e hub do IoT Edge. Dependendo de como você estruturar sua implantação, o runtime poderá ser atualizado no dispositivo ou remotamente.

Você deve atualizar o runtime do IoT Edge e as camadas de aplicativo usam a mesma versão de lançamento. Embora haja suporte para versões incompatíveis, elas não são testadas juntas. Use as seções a seguir neste artigo para atualizar as camadas de runtime e de aplicativo em um dispositivo:

  1. Atualizar o subsistema de segurança
  2. Atualizar os contêineres de runtime
  3. Verificar a correspondência de versões
    • Em seu 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 runtime de implantação do dispositivo, verifique se as versões do URI de imagem do edgehub e do 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 localizar a versão mais recente do Azure IoT Edge, confira Versões do Azure IoT Edge.

Atualizar o subsistema de segurança

O subsistema de segurança do IoT Edge é um conjunto de componentes nativo que precisa ser atualizado pelo gerenciador de pacotes no dispositivo do IoT Edge.

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

Importante

Se estiver atualizando um dispositivo da versão 1.0 ou 1.1 para a mais recente, há diferenças nos processos de instalação e configuração que requerem etapas adicionais. 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 mais recente.

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

Atualize o apt-get.

sudo apt-get update

Observação

Para instruções para obter a configuração mais recente do repositório da Microsoft, confira as etapas preliminares para Instalar o IoT Edge.

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

apt list -a iotedge

Caso você queira atualizar para a versão mais recente do módulo de runtime, use o seguinte comando que também atualiza libiothsm-std para a versão mais recente:

sudo apt-get install iotedge

Ou, se desejar instalar uma versão específica do módulo de runtime, especifique a versão da saída de lista de apt. Sempre que o iotedge for atualizado, ele tentará atualizar automaticamente o pacote libiothsm-std para a versão mais recente, o que pode causar um conflito de dependência. Se não for atualizar para a versão mais recente, certifique-se de direcionar ambos os pacotes para a mesma versão. Por exemplo, o seguinte comando 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 deseja instalar não estiver disponível por meio de apt-get, será possível usar curl para direcionar qualquer versão do repositório de versões do IoT Edge. Para qualquer versão que desejar instalar, localize os arquivos libiothsm-std e iotedge apropriados para 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, aplique novamente a configuração para garantir que o sistema esteja totalmente atualizado.

sudo iotedge config apply

Atualizar os contêineres de runtime

A maneira de atualizar o agente do IoT Edge e contêineres de hub do IoT Edge depende se você pode usar marcas sem interrupção (como 1.1) ou marcas específicas (como 1.1.1) em sua implantação.

Verifique a versão do agente do IoT Edge e de módulos de hub do IoT Edge atualmente em seu dispositivo usando o comando iotedge logs edgeAgent ou iotedge logs edgeHub. Se estiver usando IoT Edge para Linux no Windows, você precisará usar o SSH na máquina virtual Linux para verificar a versão do módulo de runtime.

Encontre a versão do contêiner nos logs

Reconhecer as marcas do IoT Edge

O agente do IoT Edge e as imagens de hub do IoT Edge são marcadas com a versão do IoT Edge a que estão associados. Há duas maneiras diferentes de usar marcas com as imagens de runtime:

  • Marcas sem interrupção – use os dois primeiros valores do número de versão para obter a imagem mais recente que corresponde a esses dígitos. Por exemplo, 1.1 é atualizado sempre que há uma nova versão para apontar para a versão 1.1.x mais recente. Se o runtime do contêiner em seu dispositivo IoT Edge extrair a imagem novamente, os módulos de runtime serão atualizados para a versão mais recente. Implantações do portal do Azure usam como padrão marcas sem interrupção. Essa abordagem é sugerida para fins de desenvolvimento.

  • Marcas específicas – use todos os três valores do número de versão para definir explicitamente a versão da imagem. Por exemplo, 1.1.0 não mudará após seu lançamento inicial. Você pode declarar um novo número de versão no manifesto de implantação quando estiver pronto para atualizar. Essa abordagem é sugerida para fins de produção.

Atualizar uma imagem de tag sem interrupção

Se você usar marcas sem interrupção em sua implantação (por exemplo, mcr.microsoft.com/azureiotedge-hub:1.1), será necessário forçar o runtime do contêiner em seu dispositivo para obter a versão mais recente da imagem.

Exclua a versão local da imagem do seu dispositivo IoT Edge. Em computadores Windows, desinstalar o subsistema de segurança também remove as imagens de runtime, portanto, você não precisará realizar esta etapa novamente.

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

Talvez você precise usar a marca -f de forçar para remover as imagens.

O serviço do IoT Edge obterá as versões mais recentes das imagens do runtime e as iniciará automaticamente em seu dispositivo outra vez.

Atualizar uma imagem de tag específica

Se você usar marcas específicas em sua implantação (por exemplo, mcr.microsoft.com/azureiotedge-hub:1.1.1), bastará atualizar a marca em seu manifesto de implantação e aplicar as alterações ao seu dispositivo.

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

  2. Na seção módulos do loT Edge, selecione Configurações de runtime.

    Definir as configurações de runtime

  3. Em Configurações de runtime, atualize o valor da Imagem para o Hub do Edge com a versão desejada. Não selecione Salvar, ainda.

    Atualizar versão da imagem do Hub do Edge

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

    Atualizar versão do agente do Hub do Edge

  5. Selecione Salvar.

  6. Selecione Examinar + criar, examine a implantação e selecione Criar.

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

A partir da versão 1.2, o serviço do IoT Edge usa um novo nome de pacote e tem algumas diferenças nos processos de instalação e configuração. Se 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.
  • O pacote libiothsm-std não é mais usado. Se tiver usado o pacote padrão fornecido como parte da versão de IoT Edge, suas configurações poderão ser transferidas para a nova versão. Se tiver usado uma implementação diferente de libiothsm-std, todos os certificados fornecidos pelo usuário, como o certificado de identidade do dispositivo, a AC do dispositivo e o pacote de confiança precisarão ser reconfigurados.
  • Um novo serviço de identidade, o aziot-Identity-service, foi introduzido como parte da versão 1.2. Esse serviço cuida do provisionamento e gerenciamento de identidades 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 Hub IoT.
  • O arquivo de configuração padrão tem um novo nome e local. Anteriormente /etc/iotedge/config.yaml, agora, espera-se que as informações de configuração do dispositivo estejam em /etc/aziot/config.toml por padrão. O comando iotedge config import pode ser usado para ajudar a migrar informações de configuração do local e da sintaxe antigos para a nova.
    • O comando de importação não pode detectar ou modificar as regras de acesso ao TPM (Trusted Platform Module) de um dispositivo. Se o dispositivo usar atestado TPM, você precisará atualizar manualmente o arquivo /etc/udev/rules.d/tpmaccess.rules para conceder acesso ao serviço aziottpm. Para saber mais, confira Conceder acesso IoT Edge ao TPM.
  • A API de carga de trabalho na versão mais recente salva os segredos criptografados em um novo formato. Se você atualizar de uma versão mais antiga para a versão mais recente, a chave de criptografia mestra 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. Depois que um segredo for criptografado novamente por um módulo, ele será salvo no novo formato. Os segredos criptografados na versão mais recente não podem ser lidos pelo mesmo módulo na versão 1.1. Se você mantiver dados criptografados em uma pasta ou volume montado no host, sempre crie uma cópia de backup dos dados antes de atualizar para manter a capacidade de fazer o downgrade, se necessário.
  • Para compatibilidade com versões anteriores ao conectar dispositivos incompatíveis com o TLS 1.2, você pode configurar o Hub do Edge para aceitar o 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 herdado e também pode ser removido do Hub do Edge em versões futuras. Para evitar problemas futuros, use o TLS 1,2 como a única versão do TLS ao se conectar ao Hub do Edge ou ao Hub IoT.
  • A versão prévia do agente MQTT experimental no Edge Hub 1.2 foi encerrada e não está incluída no Edge Hub 1.3 ou posterior. Continuamos a refinar nossos planos para um agente MQTT com base nos comentários recebidos. Enquanto isso, se você precisar de um agente de MQTT compatível com os padrões no IoT Edge, implante um agente de software livre, como o Mosquitto, como módulo do IoT Edge.
  • A partir da versão 1.2, quando uma imagem de backup é removida de um contêiner, o contêiner continua em execução e ele persiste entre reinicializações. Na versão 1.1, quando uma imagem de backup é removida, o contêiner é recriado imediatamente e a imagem de backup é 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. Atualize o apt-get.

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

    sudo apt-get remove iotedge
    
  3. Instale a versão mais recente do IoT Edge, junto ao serviço de identidade do IoT e o micro agente para Edge do Microsoft Defender para IoT.

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

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

  1. Importe o 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 do IoT Edge em execução em seus dispositivos foi atualizado, siga as etapas neste artigo para, também, atualizar os contêineres de runtime.

Próximas etapas

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

Fique por dentro das atualizações e comunicados mais recentes no blog da Internet das Coisas