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


Схема манифеста импорта Центра обновления устройств Azure для Интернета вещей

При импорте обновления в Центр обновления устройств 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"
}