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 relatedFiles o . 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"
}