Esquema de manifesto de importação da Atualização de Dispositivo do Azure 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 conceitos de manifesto de importação e estrutura de arquivos, consulte Manifesto de importação da Atualização de Dispositivo do Azure para Hub IoT. Para saber como criar o arquivo, consulte Preparar uma atualização para importar para a Atualização de Dispositivo para 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 | Type | Descrição | Obrigatório |
---|---|---|---|
Esquema | string |
Referência do esquema JSON. | No |
ID de atualização | updateId |
Identificador de atualização exclusivo. | Sim |
descrição | string |
Descrição de atualização opcional. Comprimento máximo: 512 caracteres. | Não |
compatibilidade | compatibility |
Lista de conjuntos das propriedades do dispositivo com as quais essa atualização é compatível. | Sim |
instruções | instructions |
Instruções de instalação de atualização. | Sim |
arquivos | file [0-10] |
Lista de arquivos de conteúdo de atualização. A soma de tamanhos de todos os arquivos 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 do manifesto. Deverá ser 5.0. | Sim |
createdDateTime | string |
Data e hora de criação do manifesto de importação no formato ISO 8601, por exemplo, "2020-10-02T22:18:04.9446744Z" . |
Sim |
Atualizar objeto
O objeto updateID
é um identificador exclusivo para cada atualização.
Propriedade | Type | Descrição | Obrigatório |
---|---|---|---|
provedor | string |
Entidade que está criando ou é diretamente responsável pela atualização. O provedor pode ser um nome de empresa. Padrão: ^[a-zA-Z0-9.-]+$ Comprimento máximo: 64 caracteres |
Sim |
name | 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 |
version | 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 2147483647 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 Compatibility
O objeto compatibility
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. Não é possível usar o mesmo conjunto exato de propriedades de compatibilidade com mais de uma combinação de nome e provedor de atualização.
Por exemplo:
{
"compatibility": [
{
"manufacturer": "Contoso",
"model": "Toaster"
}
]
}
Objeto Instructions
O objeto instructions
fornece as instruções de instalação da atualização. O objeto Instructions contém uma lista de steps
a serem executadas. Nenhuma outra propriedade é permitida.
As etapas podem ser o 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 | Type | Descrição | Obrigatório |
---|---|---|---|
etapas | array[1-10] |
Cada elemento na matriz steps deve ser um objeto de etapa em linha 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 | Type | 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. |
No |
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 dos 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 |
handlerProperties | 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 | Type | 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 Files
Cada objeto files
é um arquivo de conteúdo de atualização, como um binário, firmware, ou arquivo de script, que deve ser exclusivo dentro de uma atualização.
Propriedade | Type | Descrição | Obrigatório |
---|---|---|---|
filename | string |
Nome do arquivo de conteúdo de atualização. Comprimento máximo: 255 caracteres | Sim |
sizeInBytes | 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 podem ser especificados se forem compatíveis com o 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 conteúdo primário. Para obter mais informações, consulte objeto relatedFiles. | Não |
downloadHandler | downloadHandler |
Especifica como processar qualquer arquivo relacionado. | Sim, se estiver usando relatedFiles . Para obter mais informações, consulte 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 Hashes
O objeto hashes
contém hashes de arquivo codificados em base64 com os nomes de algoritmo como chave. Pelo menos o algoritmo SHA-256 deve ser especificado, e outros algoritmos poderão ser especificados se forem compatíveis com o agente. Para obter um exemplo de como calcular o hash corretamente, consulte a função Get-AduFileHashes
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 objeto relatedFiles
contém uma coleção de arquivos relacionados a um ou mais arquivos de conteúdo primário. Para obter mais informações, confira Usar o recurso de arquivos relacionados para referenciar vários arquivos de atualização.
Propriedade | Type | Descrição | Obrigatório |
---|---|---|---|
filename | string |
Lista de arquivos relacionados associados a um arquivo de conteúdo primário. | Sim |
sizeInBytes | 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 Objeto Hashes. | Sim |
properties | relatedFilesProperties [0-5] |
Até cinco pares chave-valor, em que a chave é limitada a 64 caracteres ASCII e o valor é um objeto 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 objeto downloadHandler
especifica como processar arquivos relacionados.
Propriedade | Type | 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"
}