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


Обновление устройств 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"
}