Обновление устройств Azure для схемы манифеста импорта Центр Интернета вещей
При импорте обновления в центр обновления устройств Azure для Центра Iot также отправляется связанный файл манифеста импорта JSON, который определяет важные сведения об обновлении. В этой статье описывается схема, используемая для создания файла манифеста импорта JSON.
Дополнительные сведения о принципах импорта манифестов и структуре файлов см. в разделе "Обновление устройств Azure" для Центр Интернета вещей манифеста импорта. Сведения о создании файла см. в статье "Подготовка обновления для импорта в обновление устройства" для Центр Интернета вещей.
Схема
Схема JSON манифеста импорта размещается в SchemaStore.org и состоит из следующих свойств. Другие свойства не допускаются.
Свойство | Type | Описание | Обязательное поле |
---|---|---|---|
$schema | string |
Справочник по схемам JSON. | No |
updateId | updateId |
Уникальный идентификатор обновления. | Да |
описание | string |
Необязательное описание обновления. Максимальная длина 512 символов. | No |
compatibility | compatibility |
Список наборов свойств устройства, с которыми совместимо это обновление. | Да |
instructions | instructions |
Инструкции по установке обновления. | Да |
files | file [0-10] |
Файлы полезных данных обновления. Сумма всех размеров файлов не может превышать 2 ГБ. Может быть пустым или пустым, если все шаги инструкции являются ссылочными шагами. | No |
manifestVersion | string |
Версия схемы манифеста импорта. Должно быть 5.0. | Да |
createdDateTime | string |
Импорт даты и времени создания манифеста в формате ISO 8601, например "2020-10-02T22:18:04.9446744Z" . |
Да |
Обновление объекта
Объект 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
описывает 1-5 свойств устройства, с которым это обновление совместимо. Каждое string
свойство — это пара "имя-значение" типа. Имя должно иметь длину 1–32 символов, а значение должно иметь длину 1–64 символов. Нельзя использовать один и тот же набор свойств совместимости с несколькими поставщиками обновлений и сочетанием имен.
Например:
{
"compatibility": [
{
"manufacturer": "Contoso",
"model": "Toaster"
}
]
}
Объект "Инструкции"
Объект instructions
предоставляет инструкции по установке обновления. Объект инструкций содержит список выполняемых steps
действий. Другие свойства не допускаются.
Шаги могут быть кодом для выполнения или указателей на другие обновления. Объект шага по умолчанию имеет значение, inline
если значение не type
указано.
Свойство | Type | Описание | Обязательное поле |
---|---|---|---|
steps | array[1-10] |
Каждый элемент в массиве steps должен быть встроенным объектом шага или объектом ссылочного шага. |
Да |
Например:
{
"instructions": {
"steps": [
{
"type": "inline",
...
},
{
"type": "reference",
...
}
]
}
}
Встроенный объект шага
Объект inline
шага — это шаг установки, который выполняет выполнение кода.
Свойство | Type | Описание | Обязательное поле |
---|---|---|---|
type | string |
Тип шага инструкции, выполняющего код. Этот параметр должен содержать значение inline . Если значение не указано, по умолчанию используется inline . |
No |
описание | string |
Необязательное описание шага инструкции. Максимальная длина: 64 символа. | No |
обработчик | string |
Удостоверение обработчика на устройстве, который может выполнить этот шаг. Шаблон: ^\S+/\S+:\d{1,5}$ .Минимальная длина: пять символов Максимальная длина: 32 символа. Примеры: microsoft/script:1 , microsoft/swupdate:2 , 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"
]
}
]
}
Объект эталонного шага
Объект reference
шага — это шаг установки для установки другого обновления.
Свойство | Type | Описание | Обязательное поле |
---|---|---|---|
type | referenceStepType |
Шаг инструкции по установке, который устанавливает другое обновление. Этот параметр должен содержать значение reference . |
Да |
описание | stepDescription |
Необязательное описание шага инструкции. Максимальная длина: 64 символа. | No |
updateId | updateId |
Уникальный идентификатор обновления. | Да |
Другие свойства не допускаются.
Например:
{
"steps": [
{
"type": "reference",
"updateId": {
"provider": "Contoso",
"name": "Toaster.HeatingElement",
"version": "1.0"
}
}
]
}
Объект Files
Каждый files
объект — это файл полезных данных обновления, например двоичный, встроенное ПО или файл скрипта, который должен быть уникальным в рамках обновления.
Свойство | Type | Описание | Обязательное поле |
---|---|---|---|
filename | string |
Имя файла полезных данных для обновления. Максимальная длина: 255 символов. | Да |
sizeInBytes | number |
Размер файла в байтах. Максимальный размер — 2147483648 байт. | Да |
hashes | fileHashes |
Хэши файлов в кодировке Base64 с именем алгоритма в качестве ключа. Необходимо указать по крайней мере алгоритм SHA-256, а дополнительные алгоритмы могут быть указаны, если поддерживается агентом. Дополнительные сведения о вычислении хэша см . в объекте Hashes. | Да |
relatedFiles | relatedFile[0-4] |
Коллекция файлов, связанных с одним или несколькими основными файлами полезных данных. Дополнительные сведения см . в разделе о объекте relatedFiles. | No |
downloadHandler | downloadHandler |
Указывает, как обрабатывать все связанные файлы. | Да, если используется relatedFiles . Дополнительные сведения см. в разделе downloadHandler object. |
Другие свойства не допускаются.
Например:
{
"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"
}
}
]
}
Объект Hashes
Объект hashes
содержит хэши файлов в кодировке Base64 с именами алгоритмов в качестве ключей. Необходимо указать алгоритм SHA-256. Можно указать дополнительные алгоритмы, если они поддерживаются агентом. Пример правильного вычисления хэша смGet-AduFileHashes
. в функции в скрипте AduUpdate.psm1.
Свойство | Type | Описание | Обязательное поле |
---|---|---|---|
sha256 | string |
Значение хэша файла в кодировке Base64 с использованием алгоритма SHA-256. | Да |
Разрешены другие свойства.
Например:
{
"hashes": {
"sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
}
}
Объект relatedFiles
Объект relatedFiles
содержит коллекцию файлов, связанных с одним или несколькими основными файлами полезных данных. Дополнительные сведения см. в разделе "Использование функции связанных файлов для ссылки на несколько файлов обновления".
Свойство | Type | Описание | Обязательное поле |
---|---|---|---|
filename | string |
Список связанных файлов, связанных с основным файлом полезных данных. | Да |
sizeInBytes | number |
Размер файла в байтах. Максимальный размер: 2147483648 байтов. | Да |
hashes | fileHashes |
Хэши файлов в кодировке Base64 с именем алгоритма в качестве ключа. Дополнительные сведения см. в разделе "Хэш- объект". | Да |
properties | relatedFilesProperties [0-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
Объект downloadHandler
указывает, как обрабатывать все связанные файлы.
Свойство | Type | Описание | Обязательное поле |
---|---|---|---|
id | string |
Идентификатор для downloadHandler . Ограничение в 64 символов ASCII. |
Да, если используется relatedFiles |
Другие свойства не допускаются.
Например:
"downloadHandler": {
"id": "microsoft/delta:1"
}