Preparar uma atualização para importar para a Atualização de Dispositivo para Hub IoT
Saiba como obter uma nova atualização e preparar a atualização para importação para a Atualização de Dispositivo para Hub IoT.
Pré-requisitos
Acesso a um Hub IoT com Atualização de Dispositivo para Hub IoT habilitada.
Um ambiente da CLI do Azure:
Use o ambiente Bash no Azure Cloud Shell.
Ou, se preferir executar os comandos de referência da CLI localmente, instale a CLI do Azure
- Entre na CLI do Azure usando o comando az login.
- Execute az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para fazer a atualização para a versão mais recente, execute az upgrade.
- Quando solicitado, instale as extensões da CLI do Azure no primeiro uso. Os comandos neste artigo usam a extensão azure-iot. Execute
az extension update --name azure-iot
para verificar se está usando a versão mais recente da extensão.
Dica
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. Essa sintaxe funciona em ambientes Bash. Se você estiver executando esses comandos no PowerShell, substitua cada barra invertida por um acento grave ``` ou remova-os inteiramente.
Obter uma atualização para seus dispositivos
Agora que você configurou a Atualização de Dispositivo e provisionou seus dispositivos, você precisará dos arquivos de atualização que você implantará nesses dispositivos.
Se você tiver comprado dispositivos de um integrador de solução ou OEM (Fabricante Original de Equipamentos), essa organização provavelmente fornecerá arquivos de atualização para você, sem a necessidade de criar as atualizações. Entre em contato com o OEM ou o integrador de soluções para descobrir como eles disponibilizam atualizações.
Se sua organização já criar software para os dispositivos que você usa, esse mesmo grupo será aquele que criará as atualizações para esse software.
Ao criar uma atualização a ser implantada usando a Atualização de Dispositivo para Hub IoT, comece com a abordagem baseada em imagem ou em pacote, dependendo do seu cenário.
Criar um manifesto de importação de Atualização de Dispositivo básico
Depois de obter seus arquivos de atualização, crie um manifesto de importação para descrever a atualização. Se você ainda não tiver feito isso, não se esqueça de se familiarizar 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.
Dica
Experimente os tutoriais baseados em imagem, baseados em pacote ou a atualização de proxy, caso ainda não tenha feito isso. Você também pode apenas exibir 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-name
e--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 essa 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
oumicrosoft/apt:1
) e suas propriedades associadas para esta atualização.--file
: os caminhos para o arquivo ou arquivos 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, pode ser necessário ignorar determinados caracteres em seu JSON. Por exemplo, use '\'
para ignorar aspas duplas se você estiver executando a CLI do Azure no PowerShell.
O comando init
dá suporte a cenários avançados, incluindo o recurso de arquivos relacionados que permite definir a relação entre arquivos de atualização diferentes. Para obter mais exemplos e uma lista completa de parâmetros opcionais, consulte az iot du init v5.
Depois de criar o manifesto de importação e salvá-lo como um arquivo JSON, você estará pronto para importar a atualização. Se você planeja usar a interface do usuário do portal do Azure para importação, nomeie seu manifesto de importação no seguinte formato: "<manifestname>.importmanifest.json".
Criar um manifesto de importação da 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 na seção anterior para criar um manifesto de importação pai e alguns manifestos de importação filhos para atualizações complexas. Execute os comandos da CLI do Azure a seguir depois de substituir os valores de parâmetro de exemplo pelos seus próprios. Confira Esquema de importação e Informações de API para obter detalhes sobre quais valores você pode usar. No exemplo a seguir, há três atualizações a serem implantadas no dispositivo: uma atualização pai e duas atualizações filho:
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> \