Использование функции связанных файлов для ссылки на несколько файлов обновлений
Используйте функцию связанных файлов, если необходимо выразить связи между разными файлами обновления в одном обновлении.
При импорте обновления в Обновление устройства для Центр Интернета вещей требуется манифест импорта, содержащий метаданные о полезных данных обновления. Метаданные уровня файла в манифесте импорта могут быть неструктурированным списком файлов полезных данных обновления в простейшем случае. Однако в более сложных сценариях функция связанных файлов позволяет указать связи между несколькими файлами обновления.
При создании манифеста импорта с помощью функции связанных файлов можно добавить коллекцию связанных файлов в один или несколько основных файлов полезных данных. Примером этой концепции является функция разностного обновления обновления устройства, которая использует связанные файлы для указания разностного обновления, связанного с файлом полного образа. В разностном сценарии функция связанных файлов позволяет импортировать полный образ и разностное обновление как единое действие обновления, а затем одно из них можно развернуть на устройстве. Однако функция связанных файлов не ограничивается разностными обновлениями, так как она предназначена для расширения нашими клиентами в зависимости от их собственных уникальных сценариев.
Определение связанных файлов
Функция связанных файлов доступна для манифестов импорта версии 5 или более поздней.
При добавлении связанных файлов в манифест импорта укажите следующие сведения:
Сведения о файле
Определите связанные файлы, указав имя файла, размер и хэш.
Обработчик загрузки
Укажите способ обработки связанных файлов для создания целевого файла. Подход к обработке указывается путем
downloadHandler
включения свойства в манифест импорта. ВключениеdownloadHandler
является обязательным, если в элементе указанаrelatedFiles
непустаяfile
коллекция . Можно указатьdownloadHandler
с помощью простогоid
свойства . В обработчикеid
загрузки имеется ограничение в 64 символа ASCII.Свойства связанных файлов
Вы можете предоставить дополнительные метаданные для обработчика обновлений на устройстве, чтобы узнать, как интерпретировать и правильно использовать файлы, указанные в качестве связанных файлов. Эти метаданные добавляются как часть
properties
контейнера свойств кfile
объектам иrelatedFile
.
Дополнительные сведения о схеме импорта для связанных файлов см. в разделе объект relatedFiles.
Пример манифеста импорта с использованием связанных файлов
В следующем примере манифеста импорта показано, как функция связанных файлов используется для импорта разностного обновления. В этом примере видно, что в files
разделе указано полное изображение (full-image-file-name
) с элементом properties
. Элемент properties
, в свою очередь, имеет связанный relatedFiles
элемент под ним. В этом разделе вы увидите relatedFiles
другой properties
раздел для разностного файла обновления (delta-from-v1-file-name
), а также элемент с соответствующим id
списком downloadHandler
(microsoft/delta:1
).
Примечание
В этом примере используются разностные обновления, чтобы продемонстрировать, как ссылаться на связанные файлы. Если вы хотите использовать разностные обновления в качестве функции, дополнительные сведения см. в документации по разностным обновлениям.
{
"updateId": {
// provider, name, version
},
"compatibility": [
{
// manufacturer, model, etc.
}
],
"instructions": {
"steps": [
// Inline steps...
]
},
"files": [
{
// standard file properties
"fileName": "full-image-file-name",
"sizeInBytes": 12345,
"hashes": {
"SHA256": "full-image-file-hash"
},
"mimeType": "application/octet-stream",
// new properties
"properties ": {},
"relatedFiles": [
{
// delta from version 1.0.0.0
// standard file properties
"fileName": "delta-from-v1-file-name",
"sizeInBytes": 1234,
"hashes": {
"SHA256": "delta-from-v1-file-hash"
},
"mimeType": "application/octet-stream",
// new properties
"properties": {
"microsoft.sourceFileHash": "delta-source-file-hash",
"microsoft.sourceFileHashAlgorithm": "sha256"
}
}
],
// handler to download/process our related files
"downloadHandler": {
"id": "microsoft/delta:1"
}
}
],
"createdDateTime": "2021-12-01T01:12:21Z",
"manifestVersion": "5.0"
}
Пример команды init с использованием связанных файлов
Команда az iot du init v5 для создания манифеста импорта поддерживает необязательный --related-file
параметр.
Параметр --related-file
принимает path
ключ и properties
:
--related-file path=<replace with path(s) to your delta file(s), including the full file name> properties='{"microsoft.sourceFileHashAlgorithm": "sha256", "microsoft.sourceFileHash": "<replace with the source SWU image file hash>"}'
Пример:
az iot du update init v5 \
--update-provider Microsoft --update-name myBundled --update-version 2.0 \
--compat manufacturer=Contoso model=SpaceStation \
--step handler=microsoft/script:1 properties='{"arguments": "--pre"}' description="Pre-install script" \
--file path=/my/update/scripts/preinstall.sh downloadHandler=microsoft/delta:1 \
--related-file path=/my/update/scripts/related_preinstall.json properties='{"microsoft.sourceFileHashAlgorithm": "sha256"}' \
--step updateId.provider=Microsoft updateId.name=SwUpdate updateId.version=1.1 \
--step handler=microsoft/script:1 properties='{"arguments": "--post"}' description="Post-install script" \
--file path=/my/update/scripts/postinstall.sh
Дальнейшие действия
- Сведения об импорте схемы манифеста
- Сведения о разностных обновлениях