Поделиться через


Импорт обновлений в службу "Обновление устройств для Центра Интернета вещей" — схема и прочие сведения

Если необходимо импортировать обновление в службу "Обновление устройств для Центра Интернета вещей", сначала ознакомьтесь с основными понятиями и руководством. Если вы заинтересованы в подробной схеме манифеста импорта, см. ниже.

Схема 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"
}

Следующие шаги

Дополнительные сведения о понятиях импорта.

Если вы готовы, ознакомьтесь с инструкцией по импорту, в которой по шагам описан процесс импорта.