Partilhar via


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

Ao importar uma atualização para a Atualização de Dispositivo do Azure para Iot Hub, 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 conceitos de manifesto de importação e estrutura de arquivos, consulte Atualização de dispositivo do Azure para manifesto de importação do 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 seguintes propriedades. Não são permitidas outras propriedades.

Propriedade Type Descrição Obrigatório
$schema string Referência de esquema JSON. Não
updateId 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 Lista de conjuntos de propriedades do dispositivo com os quais esta atualização é compatível. Sim
Instruções instructions Atualize as instruções de instalação. Sim
ficheiros file [0-10] Lista de arquivos de carga útil de atualização. A soma de todos os tamanhos de arquivo não pode exceder 2 GB. Pode ser vazio ou nulo se todas as etapas de instrução forem etapas de referência. Não
manifestVersion string Importar versão do esquema de manifesto. Deve ser 5.0. Sim
createdDateTime string Importe a data e a 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 Type Descrição Obrigatório
fornecedor string Entidade que está criando ou diretamente responsável pela atualização. O provedor pode ser o nome de uma empresa.
Padrão: ^[a-zA-Z0-9.-]+$
Comprimento máximo: 64 caracteres
Sim
Designação string Identificador de uma classe de atualização. O nome pode ser uma classe de dispositivo ou nome de modelo.
Padrão: ^[a-zA-Z0-9.-]+$
Comprimento máximo: 64 caracteres
Sim
Versão string Números de versão numéricos separados por pontos de duas a quatro partes. Cada parte deve ter um número entre 0 e 2147483647, e zeros à esquerda são descartados.
Padrão: ^\d+(?:\.\d+)+$
Exemplos: "1.0", "2021.11.8"
Sim

Não são permitidas outras propriedades.

Por exemplo:

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

Objeto de compatibilidade

O compatibility objeto descreve 1-5 propriedades de um dispositivo com o qual esta atualização é compatível. Cada propriedade é um string par nome-valor do tipo. O nome deve ter de 1 a 32 caracteres e o valor deve ter de 1 a 64 caracteres. Não é possível 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 de instruções

O instructions objeto fornece as instruções de instalação da atualização. O objeto de instruções contém uma lista de steps a serem executadas. Não são permitidas outras propriedades.

As etapas podem ser código para executar ou ponteiros para outras atualizações. Um objeto step assume como inline padrão se nenhum type valor for fornecido.

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

Por exemplo:

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

Objeto de etapa embutida

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

Propriedade Type Descrição Obrigatório
type string Tipo de etapa de instrução que executa a execução de código. Deve ser inline. O padrão é inline se nenhum valor for fornecido. Não
descrição string Descrição opcional da etapa de instruções. 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
ficheiros 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
manipuladorPropriedades inlineStepHandlerProperties Objetos JSON que o agente passa para o manipulador como argumentos. Não

Não são permitidas outras propriedades.

Por exemplo:

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

Objeto da etapa de referência

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

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

Não são permitidas outras propriedades.

Por exemplo:

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

Objeto Files

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

Propriedade Type Descrição Obrigatório
filename string Atualize o nome do arquivo de carga útil. Comprimento máximo: 255 caracteres Sim
sizeInBytes number Tamanho do ficheiro em número de bytes. Tamanho máximo: 2147483648 bytes Sim
hashes fileHashes Hashes de arquivo codificados em Base64 com nome de algoritmo como chave. Pelo menos o algoritmo SHA-256 deve ser especificado, e algoritmos adicionais podem ser especificados se suportados pelo agente. Consulte Objeto Hashes para obter detalhes sobre como calcular o hash. Sim
relatedFiles relatedFile[0-4] Coleção de arquivos relacionados a um ou mais arquivos de carga primária. Para obter mais informações, consulte objeto relatedFiles. Não
baixarHandler downloadHandler Especifica como processar quaisquer arquivos relacionados. Sim, se estiver a utilizar relatedFileso . Para obter mais informações, consulte objeto downloadHandler.

Não são permitidas outras propriedades.

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 Hashes

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

Propriedade Type 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 carga primária. Para obter mais informações, consulte Usar o recurso de arquivos relacionados para fazer referência a vários arquivos de atualização.

Propriedade Type Descrição Obrigatório
filename string Lista de arquivos relacionados associados a um arquivo de carga primária. Sim
sizeInBytes number Tamanho do ficheiro em número de bytes. Tamanho máximo: 2147483648 bytes. Sim
hashes fileHashes Hashes de arquivo codificados em Base64 com nome de algoritmo como chave. Para obter mais informações, consulte Objeto Hashes. Sim
propriedades relatedFilesProperties [0-5] Até cinco pares chave-valor, onde 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 quaisquer arquivos relacionados.

Propriedade Type Descrição Obrigatório
id string Identificador de downloadHandler. Limite de 64 caracteres ASCII. Sim, se estiver a utilizar relatedFiles

Não são permitidas outras propriedades.

Por exemplo:

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