Compartilhar via


Esquema de manifesto de importação da Atualização de Dispositivo para Hub IoT

Ao importar uma atualização para a Atualização de Dispositivo do Azure para Hub IoT, você também envia um arquivo de manifesto de importação JSON associado que define informações importantes sobre a atualização. Este artigo descreve o esquema usado para criar o arquivo de manifesto de importação JSON.

Para saber mais sobre como importar conceitos de manifesto e estrutura de arquivos, consulte o manifesto de importação do Azure Device Update para Hub IoT. Para saber como criar o arquivo, consulte Preparar uma atualização para importar para a Atualização de Dispositivo para o Hub IoT.

Esquema

O esquema JSON do manifesto de importação é hospedado em SchemaStore.org e consiste nas propriedades a seguir. Nenhuma outra propriedade é permitida.

Propriedade Tipo Descrição Obrigatório
$schema string Referência de esquema JSON. Não
ID de atualização updateId Identificador de atualização exclusivo. Sim
descrição string Descrição da atualização opcional. Comprimento máximo: 512 caracteres. Não
compatibilidade compatibility A lista de conjuntos de propriedades do dispositivo com a qual essa atualização é compatível. Sim
instruções instructions Atualize as instruções de instalação. Sim
arquivos file [0-10] Lista de arquivos de conteúdo de atualização. A soma de todos os tamanhos de arquivo não pode exceder 2 GB. Pode estar vazio ou nulo se todas as etapas de instrução forem etapas de referência. Não
manifestVersion string Importar versão do esquema do manifesto. Deve ser 5.0. Sim
dataHoraCriada string Importar data e hora de criação do manifesto no formato ISO 8601, por exemplo "2020-10-02T22:18:04.9446744Z". Sim

Atualizar objeto

O updateID objeto é um identificador exclusivo para cada atualização.

Propriedade Tipo Descrição Obrigatório
fornecedor string Entidade que está criando ou diretamente responsável pela atualização. O provedor pode ser um nome da empresa.
Padrão: ^[a-zA-Z0-9.-]+$
Tamanho máximo: 64 caracteres
Sim
nome string Identificador de uma classe de atualização. O nome pode ser uma classe de dispositivo ou um nome de modelo.
Padrão: ^[a-zA-Z0-9.-]+$
Tamanho máximo: 64 caracteres
Sim
versão string Dois a quatro blocos de números de versão numéricos separados por ponto. Cada bloco deve ser um número entre 0 e 2.147.483.647 e os zeros à esquerda serão descartados.
Padrão: ^\d+(?:\.\d+)+$
Exemplos: "1.0", "2021.11.8"
Sim

Nenhuma outra propriedade é permitida.

Por exemplo:

{
  "updateId": {
    "provider": "Contoso",
    "name": "Toaster",
    "version": "1.0"
  }
}

Objeto de compatibilidade

O compatibility objeto descreve 1 a 5 propriedades de um dispositivo com o qual essa atualização é compatível. Cada propriedade é um par nome-valor de tipo string. O nome deve ter de 1 a 32 caracteres e o valor deve ter de 1 a 64 caracteres. Você não pode usar o mesmo conjunto exato de propriedades de compatibilidade com mais de um provedor de atualização e combinação de nomes.

Por exemplo:

{
  "compatibility": [
    {
      "manufacturer": "Contoso",
      "model": "Toaster"
    }
  ]
}

Objeto Instructions

O instructions objeto fornece as instruções de instalação de atualização. O objeto de instruções contém uma lista de steps a serem executadas. Nenhuma outra propriedade é permitida.

As etapas podem ser código a ser executado ou ponteiros para outras atualizações. Um objeto de etapa usa inline como padrão se nenhum valor type for fornecido.

Propriedade Tipo Descrição Obrigatório
etapas array[1-10] Cada elemento na steps matriz deve ser um objeto de etapa embutida ou um objeto de etapa de referência. Sim

Por exemplo:

{
  "instructions": {
    "steps": [
      {
        "type": "inline",
        ...
      },
      {
        "type": "reference",
        ...
      }
    ]
  }
}

Objeto de etapa em linha

Um objeto de etapa inline é uma etapa de instrução de instalação que realiza a execução do código.

Propriedade Tipo Descrição Obrigatório
tipo string Tipo de etapa de instrução que executa a execução de código. Deve ser inline. O padrão será inline se nenhum valor for fornecido. Não
descrição string Descrição da etapa de instrução opcional. Comprimento máximo: 64 caracteres. Não
manipulador string Identidade do manipulador no dispositivo que pode executar esta etapa.
Padrão: ^\S+/\S+:\d{1,5}$
Comprimento mínimo: cinco caracteres
Comprimento máximo: 32 caracteres
Exemplos: microsoft/script:1, microsoft/swupdate:2, microsoft/apt:1
Sim
arquivos string [1-10] Nomes de arquivos de atualização definidos como objetos de arquivo que o agente passa para o manipulador. Cada comprimento de elemento deve ter de 1 a 255 caracteres. Sim
propriedadesDoManipulador inlineStepHandlerProperties Objetos JSON que o agente passa para o manipulador como argumentos. Não

Nenhuma outra propriedade é permitida.

Por exemplo:

{
  "steps": [
    {
      "description": "pre-install script",
      "handler": "microsoft/script:1",
      "handlerProperties": {
        "arguments": "--pre-install"
      },
      "files": [
        "configure.sh"
      ]
    }
  ]
}

Objeto de etapa de referência

Um objeto de etapa reference é uma etapa de instrução de instalação para instalar outra atualização.

Propriedade Tipo Descrição Obrigatório
tipo referenceStepType Tipo de etapa de instrução que instala outra atualização. Deve ser reference. Sim
descrição stepDescription Descrição da etapa de instrução opcional. Comprimento máximo: 64 caracteres. Não
ID de atualização updateId Identificador de atualização exclusivo. Sim

Nenhuma outra propriedade é permitida.

Por exemplo:

{
  "steps": [
    {
      "type": "reference",
      "updateId": {
        "provider": "Contoso",
        "name": "Toaster.HeatingElement",
        "version": "1.0"
      }
    }
  ]
}

Objeto de arquivos

Cada files objeto é um arquivo de conteúdo de atualização, como um arquivo binário, firmware ou script, que deve ser exclusivo em uma atualização.

Propriedade Tipo Descrição Obrigatório
Filename string Atualizar o nome do arquivo de carga. Comprimento máximo: 255 caracteres Sim
tamanhoEmBytes number Tamanho do arquivo em número de bytes. Tamanho máximo: 2147483648 bytes Sim
Hashes fileHashes Hashes de arquivo codificados em Base64 com o nome do algoritmo como chave. Pelo menos o algoritmo SHA-256 deve ser especificado e algoritmos adicionais poderão ser especificados se houver suporte do agente. Consulte o objeto Hashes para obter detalhes sobre como calcular o hash. Sim
Arquivos relacionados relatedFile[0-4] Coleção de arquivos relacionados a um ou mais arquivos de conteúdo primário. Para obter mais informações, consulte o objeto relatedFiles. Não
Manipulador de download downloadHandler Especifica como processar arquivos relacionados. Sim, se estiver usando relatedFiles. Para obter mais informações, consulte o objeto downloadHandler.

Nenhuma outra propriedade é permitida.

Por exemplo:

{
  "files": [
    {  
      "fileName": "full-image-file-name",
      "sizeInBytes": 12345,
      "hashes": {...},
      "relatedFiles": [
        {
          "fileName": "delta-from-v1-file-name",
          "sizeInBytes": 1234,
          "hashes": {
            "SHA256": "delta-from-v1-file-hash"
          },
          "properties": {...}
        }  
      ],
      "downloadHandler": {
        "id": "microsoft/delta:1"
        }
    }
  ]
}

Objeto de Hashes

O hashes objeto contém hashes de arquivo codificados em base64 com os nomes de algoritmos como chaves. Pelo menos o algoritmo SHA-256 deve ser especificado e outros algoritmos poderão ser especificados se houver suporte do agente. Para obter um exemplo de como calcular o hash corretamente, consulte a Get-AduFileHashes função no script AduUpdate.psm1.

Propriedade Tipo Descrição Obrigatório
sha256 string Valor de hash de arquivo codificado em Base64 usando o algoritmo SHA-256. Sim

Outras propriedades são permitidas.

Por exemplo:

{
  "hashes": {
    "sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
  }
}

objeto "relatedFiles"

O relatedFiles objeto contém uma coleção de arquivos relacionados a um ou mais arquivos de conteúdo primário. Para obter mais informações, consulte Usar o recurso de arquivos relacionados para fazer referência a vários arquivos de atualização.

Propriedade Tipo Descrição Obrigatório
Filename string Lista de arquivos relacionados associados a um arquivo de conteúdo primário. Sim
tamanhoEmBytes number Tamanho do arquivo em número de bytes. Tamanho máximo: 2147483648 bytes. Sim
Hashes fileHashes Hashes de arquivo codificados em Base64 com o nome do algoritmo como chave. Para obter mais informações, consulte o objeto Hashes. Sim
propriedades relatedFilesProperties [0-5] Até cinco pares chave-valor, em que a chave é limitada a 64 caracteres ASCII e o valor é um JObject com até 256 caracteres ASCII. Não

Outras propriedades são permitidas.

Por exemplo:

"relatedFiles": [
  {
    "filename": "in1_in2_deltaupdate.dat",
    "sizeInBytes": 102910752,
    "hashes": {
      "sha256": "2MIldV8LkdKenjJasgTHuYi+apgtNQ9FeL2xsV3ikHY="
    },
    "properties": {
      "microsoft.sourceFileHashAlgorithm": "sha256",
      "microsoft.sourceFileHash": "YmFYwnEUddq2nZsBAn5v7gCRKdHx+TUntMz5tLwU+24="
    }
  }
],

Objeto downloadHandler

O downloadHandler objeto especifica como processar arquivos relacionados.

Propriedade Tipo Descrição Obrigatório
id string Identificador para downloadHandler. Limite de 64 caracteres ASCII. Sim, se estiver usando relatedFiles

Nenhuma outra propriedade é permitida.

Por exemplo:

"downloadHandler": {
  "id": "microsoft/delta:1"
}