Импорт обновлений в службу "Обновление устройств для Центра Интернета вещей" — схема и прочие сведения
Если необходимо импортировать обновление в службу "Обновление устройств для Центра Интернета вещей", сначала ознакомьтесь с основными понятиями и руководством. Если вы заинтересованы в подробной схеме манифеста импорта, см. ниже.
Схема JSON манифеста импорта размещается по адресу SchemaStore.org.
Схема
Свойство | Type | Описание | Обязательное поле |
---|---|---|---|
$schema | string |
Справочник по схемам JSON. | No |
updateId | updateId |
Уникальный идентификатор обновления. | Да |
описание | string |
Необязательное описание обновления. Максимальная длина: 512 символов. |
No |
compatibility | compatibility |
Список наборов свойств устройства, с которыми совместимо это обновление. | Да |
instructions | instructions |
Инструкции по установке обновления. | Да |
files | file [0-10] |
Файлы полезных данных обновления. Сумма всех размеров файлов не может превышать 2 ГБ. Может быть пустым или иметь значение null, если все шаги инструкции являются эталонными. | No |
manifestVersion | string |
Версия схемы манифеста импорта. Должно быть 5.0. | Да |
createdDateTime | string |
Манифест импорта даты и времени был создан в формате ISO 8601. Пример: "2020-10-02T22:18:04.9446744Z" |
Да |
Дополнительные свойства не допускаются.
updateId object
Объект updateID представляет собой уникальный идентификатор каждого обновления.
Свойство | Type | Описание | Обязательное поле |
---|---|---|---|
provider | string |
Лицо, которое создает или непосредственно отвечает за обновление. Это может быть название компании. Шаблон: ^[a-zA-Z0-9.-]+$ .Максимальная длина: 64 символа. |
Да |
name | string |
Идентификатор класса обновлений. Может быть классом устройства или названием модели. Шаблон: ^[a-zA-Z0-9.-]+$ .Максимальная длина: 64 символа. |
Да |
version | string |
Числовые номера версий от двух до четырех частей, разделенных точками. Каждая часть должна быть числом от 0 до 2147483647, а ведущие нули будут удалены. Шаблон: ^\d+(?:\.\d+)+$ .Примеры: "1.0" , "2021.11.8" |
Да |
Дополнительные свойства не допускаются.
Например:
{
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
}
}
Объект compatibility
Объект compatibility описывает свойства устройства, с которым совместимо это обновление.
- Тип:
object
- Минимальные свойства:
1
- Максимальные свойства:
5
Каждое свойство является парой «имя–значение» типа строки.
- Длина имени минимального свойства:
1
- Длина имени максимального свойства:
32
- Длина значения минимального свойства:
1
- Длина значения максимального свойства:
64
Один и тот же набор свойств совместимости не может использоваться с несколькими сочетаниями поставщика обновлений и имени.
Например:
{
"compatibility": [
{
"manufacturer": "Contoso",
"model": "Toaster"
}
]
}
Объект instructions
Объект instructions предоставляет инструкции по установке обновления. Этот объект содержит список действий, которые необходимо выполнить. В качестве действий может быть представлен код для выполнения или указатель на другое обновление.
Свойство | Type | Описание | Обязательное поле |
---|---|---|---|
steps | array[1-10] |
Каждый элемент в массиве должен быть либо объектом inlineStep, либо объектом referenceStep. | Да |
Дополнительные свойства не допускаются.
Например:
{
"instructions": {
"steps": [
{
"type": "inline",
...
},
{
"type": "reference",
...
}
]
}
}
Объект inlineStep
Объект inline представляет собой шаг инструкции по установке, выполняющий код.
Свойство | Type | Описание | Обязательное поле |
---|---|---|---|
type | string |
Тип шага инструкции, выполняющего код. Этот параметр должен содержать значение inline .Если значение не указано, по умолчанию используется inline . |
No |
описание | string |
Необязательное описание шага инструкции. Максимальная длина: 64 символа. |
No |
обработчик | string |
Удостоверение обработчика на устройстве, который может выполнить этот шаг. Шаблон: ^\S+/\S+:\d{1,5}$ .Максимальная длина: 5 символов. Максимальная длина: 32 символа. Примеры: microsoft/script:1 , microsoft/swupdate:1 , microsoft/apt:1 |
Да |
files | string [1-10] |
Имена файлов обновления, определенные как объекты файлов, которые агент передает обработчику. Длина каждого элемента массива должна быть от 1 до 255 символов. | Да |
handlerProperties | inlineStepHandlerProperties |
Объект JSON, который агент передаст в обработчик в качестве аргументов. | No |
Дополнительные свойства не допускаются.
Например:
{
"steps": [
{
"description": "pre-install script",
"handler": "microsoft/script:1",
"handlerProperties": {
"arguments": "--pre-install"
},
"files": [
"configure.sh"
]
}
]
}
Объект referenceStep
Объект reference представляет собой шаг инструкции по установке, который устанавливает другое обновление.
Свойство | Type | Описание | Обязательное поле |
---|---|---|---|
type | referenceStepType |
Шаг инструкции по установке, который устанавливает другое обновление. Этот параметр должен содержать значение reference . |
Да |
описание | stepDescription |
Необязательное описание шага инструкции. Максимальная длина: 64 символа. |
No |
updateId | updateId |
Уникальный идентификатор обновления. | Да |
Дополнительные свойства не допускаются.
Например:
{
"steps": [
{
"type": "reference",
"updateId": {
"provider": "Contoso",
"name": "Toaster.HeatingElement",
"version": "1.0"
}
}
]
}
Объект file
Объект file — это файл полезных данных для обновления, например двоичный файл, файл встроенного ПО, скрипта и т. д. Каждый объект file должен быть уникальным в пределах обновления.
Свойство | Type | Описание | Обязательное поле |
---|---|---|---|
filename | string |
Имя файла полезных данных для обновления. Максимальная длина: 255 символов. |
Да |
sizeInBytes | number |
Размер файла в байтах. Максимальный размер — 2147483648 байт. |
Да |
hashes | fileHashes |
Хэши файлов в кодировке Base64 с именем алгоритма в качестве ключа. Необходимо указать алгоритм SHA-256 и дополнительный алгоритм, если он поддерживается агентом. Дополнительные сведения о вычислении хэша см. ниже. | Да |
relatedFiles | relatedFile[0-4] |
Коллекция связанных файлов с одним или несколькими основными файлами полезных данных. | No |
downloadHandler | downloadHandler |
Указывает, как обрабатывать все связанные файлы. | Да, только если используется связанные файлы |
Дополнительные свойства не допускаются.
Например:
{
"files": [
{
"filename": "configure.sh",
"sizeInBytes": 7558,
"hashes": {...}
}
]
}
Объект fileHashes
Хэши файлов в кодировке Base64 с именем алгоритма в качестве ключа. Необходимо указать алгоритм SHA-256. Можно указать дополнительные алгоритмы, если они поддерживаются агентом. Пример правильного расчета хэша см. в описании функции Get-AduFileHashes на странице скрипта AduUpdate.psm1.
Свойство | Type | Описание | Обязательное поле |
---|---|---|---|
sha256 | string |
Значение хэша файла в кодировке Base64 с использованием алгоритма SHA-256. | Да |
Дополнительные свойства не допускаются.
Например:
{
"hashes": {
"sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
}
}
Объект relatedFiles
Коллекция связанных файлов с одним или несколькими основными файлами полезных данных.
Свойство | Type | Описание | Обязательное поле |
---|---|---|---|
filename | string |
Список связанных файлов, связанных с основным файлом полезных данных. | Да |
sizeInBytes | number |
Размер файла в байтах. Максимальный размер — 2147483648 байт. |
Да |
hashes | fileHashes |
Хэши файлов в кодировке Base64 с именем алгоритма в качестве ключа. Необходимо указать алгоритм SHA-256 и дополнительный алгоритм, если он поддерживается агентом. Дополнительные сведения о вычислении хэша см. ниже. | Да |
properties | relatedFilesProperties [0-5] |
Ограничение в 5 пар "ключ-значение", где ключ ограничен 64 символами ASCII и значением является JObject (с до 256 символов ASCII). | No |
Дополнительные свойства не допускаются.
Например:
"relatedFiles": [
{
"filename": "in1_in2_deltaupdate.dat",
"sizeInBytes": 102910752,
"hashes": {
"sha256": "2MIldV8LkdKenjJasgTHuYi+apgtNQ9FeL2xsV3ikHY="
},
"properties": {
"microsoft.sourceFileHashAlgorithm": "sha256",
"microsoft.sourceFileHash": "YmFYwnEUddq2nZsBAn5v7gCRKdHx+TUntMz5tLwU+24="
}
}
],
Дополнительные сведения см. в разделе "Использование функции связанных файлов для ссылки на несколько файлов обновления".
объект downloadHandler
Указывает, как обрабатывать все связанные файлы.
Свойство | Type | Описание | Обязательное поле |
---|---|---|---|
id | string |
Идентификатор downloadHandler. Ограничение в 64 символов ASCII. | Да |
Дополнительные свойства не допускаются.
Например:
"downloadHandler": {
"id": "microsoft/delta:1"
}
Следующие шаги
Дополнительные сведения о понятиях импорта.
Если вы готовы, ознакомьтесь с инструкцией по импорту, в которой по шагам описан процесс импорта.