Preparar uma atualização para importar para a Atualização de Dispositivo para o Hub IoT

Saiba como obter uma nova atualização e prepará-la para importação para a Atualização de Dispositivo para o Hub IoT.

Pré-requisitos

  • Acesso a um Hub IoT com a Atualização de Dispositivo para o Hub IoT habilitada.

  • Um ambiente da CLI do Azure:

    1. Entre na CLI do Azure usando o comando az login .
    2. Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.
    3. Quando solicitado, instale as extensões da CLI do Azure na primeira utilização. Os comandos neste artigo usam a extensão azure-iot . Execute az extension update --name azure-iot para se certificar de que está a utilizar a versão mais recente da extensão.

Gorjeta

Os comandos da CLI do Azure neste artigo usam o caractere de barra invertida \ para continuação de linha para que os argumentos de comando sejam mais fáceis de ler. Esta sintaxe funciona em ambientes Bash. Se você estiver executando esses comandos no PowerShell, substitua cada barra invertida por um backtick ''', ou remova-os completamente.

Obter uma atualização para os seus dispositivos

Agora que você configurou a Atualização de Dispositivo e provisionou seus dispositivos, precisará do(s) arquivo(s) de atualização que implantará nesses dispositivos.

  • Se você comprou dispositivos de um fabricante de equipamento original (OEM) ou integrador de soluções, essa organização provavelmente fornecerá arquivos de atualização para você, sem que você precise criar as atualizações. Entre em contato com o OEM ou integrador de soluções para saber como eles disponibilizam as atualizações.

  • Se a sua organização criar software para os dispositivos que utiliza, esse mesmo grupo criará as atualizações para esse software.

Ao criar uma atualização a ser implantada usando a Atualização de Dispositivo para o Hub IoT, comece com a abordagem baseada em imagem ou em pacote, dependendo do seu cenário.

Criar um manifesto de importação básico da Atualização de Dispositivo

Depois de ter os arquivos de atualização, crie um manifesto de importação para descrever a atualização. Se ainda não o fez, familiarize-se com os conceitos básicos de importação. Embora seja possível criar um JSON de manifesto de importação manualmente usando um editor de texto, a CLI (Interface de Linha de Comando) do Azure simplifica muito o processo e é usada nos exemplos abaixo.

Gorjeta

Experimente os tutoriais de atualização de proxy baseados em imagem, pacote ou proxy, se ainda não tiver feito isso. Você também pode visualizar arquivos de manifesto de importação de exemplo desses tutoriais para referência.

O comando az iot du init v5 usa os seguintes argumentos:

  • --update-provider, --update-namee --update-version: Esses três parâmetros definem o objeto updateId que é um identificador exclusivo para cada atualização.
  • --compat: O objeto de compatibilidade é um conjunto de pares nome-valor que descrevem as propriedades de um dispositivo com o qual esta atualização é compatível.
    • O mesmo conjunto exato de propriedades de compatibilidade não pode ser usado com mais de uma combinação de provedor e nome.
  • --step: O manipulador de atualização no dispositivo (por exemplo, microsoft/script:1, microsoft/swupdate:1, ou microsoft/apt:1) e suas propriedades associadas para esta atualização.
  • --file: Os caminhos para o(s) arquivo(s) de atualização.

Para obter mais informações sobre esses parâmetros, consulte Importar esquema e informações de API.

az iot du update init v5 \
    --update-provider <replace with your Provider> \
    --update-name <replace with your update Name> \
    --update-version <replace with your update Version> \
    --compat <replace with the property name>=<replace with the value your device will report> <replace with the property name>=<replace with the value your device will report> \
    --step handler=<replace with your chosen handler> properties=<replace with any handler properties (JSON-formatted)> \
    --file path=<replace with path(s) to your update file(s), including the full file name> 

Por exemplo:

az iot du update init v5 \
    --update-provider Microsoft \
    --update-name AptUpdate \
    --update-version 1.0.0 \
    --compat manufacturer=Contoso model=Vacuum \
    --step handler=microsoft/script:1 properties='{"installedCriteria": "1.0"}' \
    --file path=/my/apt/manifest/file

Para propriedades do manipulador, talvez seja necessário escapar de determinados caracteres em seu JSON. Por exemplo, use '\' para escapar de aspas duplas se estiver executando a CLI do Azure no PowerShell.

O init comando suporta cenários avançados, incluindo o recurso de arquivos relacionados que permite definir a relação entre diferentes arquivos de atualização. Para obter mais exemplos e uma lista completa de parâmetros opcionais, consulte az iot du init v5.

Depois de criar seu manifesto de importação e salvá-lo como um arquivo JSON, você estará pronto para importar sua atualização. Se você estiver planejando usar a interface do usuário do portal do Azure para importação, certifique-se de nomear seu manifesto de importação no seguinte formato: "<manifestname>.importmanifest.json".

Criar um manifesto de importação de Atualização de Dispositivo avançado para uma atualização de proxy

Se a atualização for mais complexa, como uma atualização de proxy, talvez seja necessário criar vários manifestos de importação. Você pode usar a mesma abordagem da CLI do Azure da seção anterior para criar um manifesto de importação pai e algum número de manifestos de importação filho para atualizações complexas. Execute os seguintes comandos da CLI do Azure depois de substituir os valores de parâmetro de exemplo pelos seus. Consulte Importar informações de esquema e API para obter detalhes sobre quais valores você pode usar. No exemplo abaixo, há três atualizações a serem implantadas no dispositivo: uma atualização pai e duas atualizações filhas:

az iot du update init v5 \
    --update-provider <replace with child_1 update Provider> \
    --update-name <replace with child_1 update Name> \
    --update-version <replace with child_1 update Version> \
    --compat manufacturer=<replace with the value your device will report> model=<replace with the value your device will report> \
    --step handler=<replace with your chosen handler> \
    --file path=<replace with path(s) to your update file(s), including the full file name> \
az iot du update init v5 \
    --update-provider <replace with child_2 update Provider> \
    --update-name <replace with child_2 update Name> \
    --update-version <replace with child_2 update Version> \
    --compat manufacturer=<replace with the value your device will report> model=<replace with the value your device will report> \
    --step handler=<replace with your chosen handler> \
    --file path=<replace with path(s) to your update file(s), including the full file name> \
az iot du update init v5 \
    --update-provider <replace with the parent update Provider> \
    --update-name <replace with the parent update Name> \
    --update-version <replace with the parent update Version> \
    --compat manufacturer=<replace with the value your device will report> model=<replace with the value your device will report> \
    --step handler=<replace with your chosen handler> properties=<replace with any desired handler properties (JSON-formatted)> \
    --file path=<replace with path(s) to your update file(s), including the full file name> \
    --step updateId.provider=<replace with child_1 update provider> updateId.name=<replace with child_1 update name> updateId.version=<replace with child_1 update version> \
    --step updateId.provider=<replace with child_2 update provider> updateId.name=<replace with child_2 update name> updateId.version=<replace with child_2 update version> \

Próximos passos