Importando atualizações para a Atualização de Dispositivo para o Hub IoT: esquema e outras informações
Se você quiser importar uma atualização para a Atualização de Dispositivo para o Hub IoT, certifique-se de ter revisado os conceitos e o guia de instruções primeiro. Se você estiver interessado nos detalhes do esquema de manifesto de importação em si, veja abaixo.
O esquema JSON do manifesto de importação é hospedado em SchemaStore.org.
Esquema
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 ficheiro 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 de manifesto. Deve ser 5.0. | Sim |
createdDateTime | string |
O manifesto de importação de data e hora foi criado no formato ISO 8601. Exemplo: "2020-10-02T22:18:04.9446744Z" |
Sim |
Propriedades adicionais não são permitidas.
objeto updateId
O objeto updateID é 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. 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. 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 serão descartados. Padrão: ^\d+(?:\.\d+)+$ Exemplos: "1.0" , "2021.11.8" |
Sim |
Propriedades adicionais não são permitidas.
Por exemplo:
{
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
}
}
objeto de compatibilidade
O objeto de compatibilidade descreve as propriedades de um dispositivo com o qual esta atualização é compatível.
- Tipo:
object
- Propriedades mínimas:
1
- Propriedades máximas:
5
Cada propriedade é um par nome-valor da cadeia de caracteres do tipo.
- Comprimento mínimo do nome da propriedade:
1
- Comprimento máximo do nome da propriedade:
32
- Comprimento mínimo do valor da propriedade:
1
- Comprimento máximo do valor da propriedade:
64
O mesmo conjunto exato de propriedades de compatibilidade não pode ser usado com mais de um provedor de atualização e combinação de nome.
Por exemplo:
{
"compatibility": [
{
"manufacturer": "Contoso",
"model": "Toaster"
}
]
}
objeto de instruções
O objeto instructions fornece as instruções de instalação da atualização. O objeto instructions contém uma lista de etapas a serem executadas. As etapas podem ser um código para executar ou um ponteiro para outra atualização.
Propriedade | Type | Descrição | Obrigatório |
---|---|---|---|
passos | array[1-10] |
Cada elemento na matriz deve ser um objeto inlineStep ou um objeto referenceStep. | Sim |
Propriedades adicionais não são permitidas.
Por exemplo:
{
"instructions": {
"steps": [
{
"type": "inline",
...
},
{
"type": "reference",
...
}
]
}
}
objeto inlineStep
Um objeto de etapa embutido é 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: 5 caracteres Comprimento máximo: 32 caracteres Exemplos: microsoft/script:1 , microsoft/swupdate:1 , microsoft/apt:1 |
Sim |
ficheiros | string [1-10] |
Nomes de arquivos de atualização definidos como objetos de arquivo que o agente passará para o manipulador. Cada elemento na matriz deve ter comprimento entre 1 e 255 caracteres. | Sim |
manipuladorPropriedades | inlineStepHandlerProperties |
Objeto JSON que o agente passará para o manipulador como argumentos. | Não |
Propriedades adicionais não são permitidas.
Por exemplo:
{
"steps": [
{
"description": "pre-install script",
"handler": "microsoft/script:1",
"handlerProperties": {
"arguments": "--pre-install"
},
"files": [
"configure.sh"
]
}
]
}
objeto referenceStep
Um objeto de etapa de referência é uma etapa de instrução de instalação que instala 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 |
Propriedades adicionais não são permitidas.
Por exemplo:
{
"steps": [
{
"type": "reference",
"updateId": {
"provider": "Contoso",
"name": "Toaster.HeatingElement",
"version": "1.0"
}
}
]
}
objeto de arquivo
Um objeto de arquivo é um arquivo de carga útil de atualização, por exemplo, binário, firmware, script, etc. Cada objeto de arquivo 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 o algoritmo adicional pode ser especificado se suportado pelo agente. Veja abaixo detalhes sobre como calcular o hash. | Sim |
relatedFiles | relatedFile[0-4] |
Coleção de arquivos relacionados a um ou mais de seus arquivos de carga primária. | Não |
baixarHandler | downloadHandler |
Especifica como processar quaisquer arquivos relacionados. | Sim somente se estiver usando relatedFiles |
Propriedades adicionais não são permitidas.
Por exemplo:
{
"files": [
{
"filename": "configure.sh",
"sizeInBytes": 7558,
"hashes": {...}
}
]
}
objeto fileHashes
Hashes de arquivo codificados em Base64 com o nome do algoritmo como chave. 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 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 |
Propriedades adicionais são permitidas.
Por exemplo:
{
"hashes": {
"sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
}
}
objeto relatedFiles
Coleção de arquivos relacionados a um ou mais de seus arquivos de carga primária.
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. Pelo menos o algoritmo SHA-256 deve ser especificado, e o algoritmo adicional pode ser especificado se suportado pelo agente. Veja abaixo detalhes sobre como calcular o hash. | Sim |
propriedades | relatedFilesProperties [0-5] |
Limite de 5 pares chave-valor, onde a chave é limitada a 64 caracteres ASCII e o valor é JObject (com até 256 caracteres ASCII). | Não |
Propriedades adicionais 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="
}
}
],
Para obter mais informações, consulte Usar o recurso de arquivos relacionados para fazer referência a vários arquivos de atualização.
objeto downloadHandler
Especifica como processar quaisquer arquivos relacionados.
Propriedade | Type | Descrição | Obrigatório |
---|---|---|---|
id | string |
Identificador para downloadHandler. Limite de 64 caracteres ASCII. | Sim |
Não são permitidas propriedades adicionais.
Por exemplo:
"downloadHandler": {
"id": "microsoft/delta:1"
}
Próximos passos
Saiba mais sobre conceitos de importação.
Se você estiver pronto, experimente o guia de instruções de importação, que o orientará pelo processo de importação passo a passo.