Использование функции связанных файлов для ссылки на несколько файлов обновлений

Используйте функцию связанных файлов, если необходимо выразить связи между разными файлами обновления в одном обновлении.

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

При создании манифеста импорта с помощью функции связанных файлов можно добавить коллекцию связанных файлов в один или несколько основных файлов полезных данных. Примером этой концепции является функция разностного обновления обновления устройства, которая использует связанные файлы для указания разностного обновления, связанного с файлом полного образа. В разностном сценарии функция связанных файлов позволяет импортировать полный образ и разностное обновление как единое действие обновления, а затем одно из них можно развернуть на устройстве. Однако функция связанных файлов не ограничивается разностными обновлениями, так как она предназначена для расширения нашими клиентами в зависимости от их собственных уникальных сценариев.

Функция связанных файлов доступна для манифестов импорта версии 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"
    }

Команда 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

Дальнейшие действия