Обновление устройств Azure для концепций импорта Центр Интернета вещей
Чтобы развернуть обновление на устройствах с помощью обновления устройств Azure для Центр Интернета вещей, сначала импортируйте обновление в службу обновления устройств, которая сохраняет импортированное обновление и развертывает его на устройствах. В этой статье приведен обзор некоторых важных понятий, которые необходимо учитывать при импорте обновлений.
Импорт манифеста
Манифест импорта — это JSON-файл, который определяет важные сведения о импортируемом обновлении. Вы отправляете манифест импорта и связанные файлы обновления, например пакет обновления встроенного ПО, как часть процесса импорта. Метаданные, определенные в манифесте импорта, используются для приема обновления. Некоторые метаданные также используются во время развертывания, например для проверки правильности установки обновления.
В следующем коде JSON показан пример файла манифеста импорта:
{
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
},
"isDeployable": false,
"compatibility": [
{
"manufacturer": "Contoso",
"model": "Toaster"
}
],
"instructions": {
"steps": [
{
"handler": "microsoft/swupdate:1",
"files": [
"firmware.swu"
],
"handlerProperties": {
"installedCriteria": "1.0"
}
}
]
},
"files": [
{
"filename": "firmware.swu",
"sizeInBytes": 7558,
"hashes": {
"sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
}
}
],
"createdDateTime": "2022-01-19T06:23:52.6996916Z",
"manifestVersion": "5.0"
}
Разделы файла манифеста импорта представляют важные понятия обновления устройств, как описано в следующих разделах. Сведения о полной схеме манифеста импорта см. в разделе "Импорт схемы JSON манифеста".
Идентификатор обновления
Удостоверение обновления или updateId
уникальный идентификатор обновления в обновлении обновления устройства и содержит следующие свойства:
- Поставщик — это сущность, которая создает или отвечает за обновление. Поставщик часто является именем компании.
- Имя — это идентификатор класса обновления. Имя часто является именем класса устройства или модели.
- Версия — это число, которое отличает это обновление от других пользователей с тем же поставщиком и именем.
Рассмотрим пример.
{
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
}
}
Примечание.
Используется updateId
только службой обновления устройств и отличается от удостоверений компонентов программного обеспечения на устройствах.
Совместимость
В разделе совместимости для определения устройств, которые могут установить обновление, используется одна или несколько произвольных пар "ключ-значение". Для развертывания обновления могут быть доступны только устройства, которые сообщают свойства, соответствующие значениям совместимости. Обновление совместимо с несколькими классами устройств, включая несколько наборов свойств совместимости устройств.
В следующем примере показано обновление, которое можно развернуть только на устройствах, которые сообщают Contoso и Тостер в качестве производителя и модели устройства.
{
"compatibility": [
{
"manufacturer": "Contoso",
"model": "Toaster"
}
]
}
Instructions
В разделе "Инструкции" содержатся необходимые сведения или шаги агента устройства для установки обновления. Самое простое обновление содержит один встроенный шаг, который выполняет файл полезных данных обновления с помощью обработчика, зарегистрированного в агенте устройства. В следующем примере показано одношаговые инструкции.
{
"instructions": {
"steps": [
{
"handler": "microsoft/swupdate:1",
"files": [
"contoso.toaster.1.0.swu"
]
}
]
}
}
Примечание.
Это handler
свойство эквивалентно свойству updateType
в манифесте импорта версии 3.0 или более ранней.
Обновление может содержать несколько шагов, как показано в следующем примере:
{
"instructions": {
"steps": [
{
"description": "pre-install script",
"handler": "microsoft/script:1",
"handlerProperties": {
"arguments": "--pre-install"
},
"files": [
"configure.sh"
]
},
{
"description": "firmware package",
"handler": "microsoft/swupdate:1",
"files": [
"contoso.toaster.1.0.swu"
]
}
]
}
}
Обновление может содержать справочные действия, которые указывают агенту устройства установить другое обновление с собственным манифестом импорта, устанавливая связь родительского и дочернего обновления. Обновление может содержать любое сочетание встроенных и ссылочных шагов.
Например, обновление для устройства Toaster может содержать два дочерних обновления:
{
"instructions": {
"steps": [
{
"type": "reference",
"updateId": {
"provider": "Contoso",
"name": "Toaster.HeatingElement",
"version": "1.0"
}
},
{
"type": "reference",
"updateId": {
"provider": "Contoso",
"name": "Toaster.Sensors",
"version": "1.0"
}
}
]
}
}
Файлы
Раздел "Файлы " манифеста импорта содержит метаданные файла полезных данных обновления, например name
, size
и hash
. Обновление устройства использует эти метаданные для проверки целостности во время импорта и перенаправит те же сведения агенту устройства для проверки целостности перед установкой.
Примечание.
Родительское обновление, содержащее только справочные шаги, не определяет файлы полезных данных обновления.
Создание манифеста импорта
Хотя можно создать JSON манифеста импорта вручную с помощью текстового редактора, Azure CLI значительно упрощает процесс. Когда вы будете готовы попробовать создать манифест импорта, воспользуйтесь руководством по использованию руководства.
Внимание
Чтобы импортировать в службу обновления устройств через портал Azure, имя файла JSON манифеста импорта должно заканчиваться .importmanifest.json.
Совет
Visual Studio Code можно использовать для включения автоматической компиляции и проверки схемы JSON при создании манифеста импорта.
Обновление ограничений импорта
Для каждого экземпляра службы "Обновление устройств для Центра Интернета вещей" применяются определенные ограничения. Если вы еще не знакомы с ними, изучите статью Ограничения на обновление устройств.