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