Importando atualizações para a Atualização de Dispositivo para Hub IoT: esquema e outras informações
Se você quiser importar uma atualização para a Atualização de Dispositivo para Hub IoT, revise os conceitos e o guia de instruções primeiro. Confira abaixo se você estiver interessado nos detalhes do esquema de manifesto de importação em si.
O esquema JSON do manifesto de importação está hospedado em SchemaStore.org.
Esquema
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 |
No |
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. | No |
manifestVersion | string |
Importar versão do esquema do manifesto. Deverá ser 5.0. | Sim |
createdDateTime | string |
Data e hora em que o manifesto de importação foi criado no formato ISO 8601. Exemplo: "2020-10-02T22:18:04.9446744Z" |
Sim |
Não são permitidas propriedades adicionais.
Objeto updateId
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. 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. 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 |
Não são permitidas propriedades adicionais.
Por exemplo:
{
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
}
}
objeto compatibility
O objeto compatibility descreve as propriedades de um dispositivo com o qual essa atualização é compatível.
- Tipo:
object
- Propriedades mínimas:
1
- Propriedades máximas:
5
Cada propriedade é um par nome-valor da cadeia de caracteres de tipo.
- Comprimento mínimo de nome de propriedade:
1
- Comprimento máximo de nome de propriedade:
32
- Comprimento mínimo do valor de propriedade:
1
- Comprimento máximo do valor de propriedade:
64
O mesmo conjunto exato de propriedades de compatibilidade não pode ser usado com mais de uma combinação de provedor de atualização e nome.
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 etapas a serem executadas. As etapas podem ser o código a ser executado ou um ponteiro para outra atualização.
Propriedade | Type | Descrição | Obrigatório |
---|---|---|---|
etapas | array[1-10] |
Cada elemento na matriz deve ser um objeto inlineStep ou um objeto referenceStep. | Sim |
Não são permitidas propriedades adicionais.
Por exemplo:
{
"instructions": {
"steps": [
{
"type": "inline",
...
},
{
"type": "reference",
...
}
]
}
}
Objeto inlineStep
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 |
No |
manipulador | string |
Identidade do manipulador no dispositivo que pode executar esta etapa. Padrão: ^\S+/\S+:\d{1,5}$ Comprimento máximo: 5 caracteres Comprimento máximo: 32 caracteres Exemplos: microsoft/script:1 , microsoft/swupdate:1 , microsoft/apt:1 |
Sim |
arquivos | string [1-10] |
Nomes dos arquivos de atualização definidos como objetos de arquivo que o agente passará para o manipulador. Cada elemento na matriz deve ter um comprimento entre 1 e 255. | Sim |
handlerProperties | inlineStepHandlerProperties |
Objeto JSON que o agente passará para o manipulador como argumentos. | No |
Não são permitidas propriedades adicionais.
Por exemplo:
{
"steps": [
{
"description": "pre-install script",
"handler": "microsoft/script:1",
"handlerProperties": {
"arguments": "--pre-install"
},
"files": [
"configure.sh"
]
}
]
}
Objeto referenceStep
Um objeto de etapa reference é uma etapa de instrução de instalação que instala 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 |
No |
ID de atualização | updateId |
Identificador de atualização exclusivo. | Sim |
Não são permitidas propriedades adicionais.
Por exemplo:
{
"steps": [
{
"type": "reference",
"updateId": {
"provider": "Contoso",
"name": "Toaster.HeatingElement",
"version": "1.0"
}
}
]
}
Objeto file
Um objeto file é um arquivo de conteúdo de atualização, por exemplo, binário, firmware, script etc. Cada objeto file 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 o algoritmo adicional pode ser especificado se for compatível com o agente. Confira 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 conteúdo primários. | Não |
downloadHandler | downloadHandler |
Especifica como processar qualquer arquivo relacionado. | Sim somente se estiver usando relatedFiles |
Não são permitidas propriedades adicionais.
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 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 |
São permitidas propriedades adicionais.
Por exemplo:
{
"hashes": {
"sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
}
}
objeto relatedFiles
Coleção de arquivos relacionados a um ou mais de seus arquivos de conteúdo primários.
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. Pelo menos o algoritmo SHA-256 deve ser especificado e o algoritmo adicional pode ser especificado se for compatível com o agente. Confira abaixo detalhes sobre como calcular o hash. | Sim |
properties | relatedFilesProperties [0-5] |
Limite de cinco pares chave-valor, em que a chave é limitada a 64 caracteres ASCII e o valor é JObject (com até 256 caracteres ASCII). | Não |
São permitidas propriedades adicionais.
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, confira Usar o recurso de arquivos relacionados para referenciar vários arquivos de atualização.
Objeto downloadHandler
Especifica como processar qualquer arquivo relacionado.
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óximas etapas
Saiba mais sobre os conceitos de importação.
Se você estiver pronto, experimente o Guia de instruções de importação, que o orientará passo a passo durante o processo de importação.