你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure Device Update for IoT Hub 导入清单架构

将更新导入 Azure Device Update for Iot Hub 时,你还会提交一个关联的 JSON 导入清单文件,用于定义有关更新的重要信息。 本文介绍用于创建 JSON 导入清单文件的架构。

若要详细了解导入清单概念和文件结构,请参阅 Azure Device Update for IoT Hu 导入清单。 若要了解如何创建该文件,请参阅准备要导入到 Device Update for IoT Hub 的更新

架构

导入清单 JSON 架构托管在 SchemaStore.org,包含以下属性。 不允许使用其他属性。

properties 类型​​ 描述 必需
$schema string JSON 架构引用。
updateId updateId 唯一的更新标识符。
description string 可选更新说明。 最大长度:512 个字符。
兼容性 compatibility 与此更新兼容的设备属性集列表。
instructions instructions 更新安装说明。
文件 file [0-10] 更新有效负载文件的列表。 所有文件大小的总和不能超过 2 GB。 如果所有说明步骤均为引用步骤,则可为空或为 null。
manifestVersion string 导入清单架构版本。 必须为 5.0。
createdDateTime string 导入清单创建日期和时间,采用 ISO 8601 格式,例如 "2020-10-02T22:18:04.9446744Z"

更新对象

updateID 对象是每项更新的唯一标识符。

properties 类型​​ 描述 必需
提供程序 string 正在创建或直接负责更新的实体。 provider 可以是公司名称。
模式:^[a-zA-Z0-9.-]+$
最大长度:64 个字符
name string 更新类的标识符。 name 可以是设备类或模型名称。
模式:^[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 对象

compatibility 对象描述与此更新兼容的设备的 1-5 个属性。 每个属性都是一个 string 类型名称/值对。 名称长度必须为 1-32 个字符,值长度必须为 1-64 个字符。 不能将同一完整的兼容性属性集与多个更新提供程序和名称组合一起使用。

例如:

{
  "compatibility": [
    {
      "manufacturer": "Contoso",
      "model": "Toaster"
    }
  ]
}

Instructions 对象

instructions 对象提供更新安装说明。 instructions 对象包含要执行的 steps 的列表。 不允许使用其他属性。

Steps 可以是要执行的代码,也可以是指向其他更新的指针。 如果没有提供 type 值,则 step 对象默认为 inline

properties 类型​​ 描述 必需
steps array[1-10] steps 数组中的每个元素必须是 inline step 对象reference step 对象

例如:

{
  "instructions": {
    "steps": [
      {
        "type": "inline",
        ...
      },
      {
        "type": "reference",
        ...
      }
    ]
  }
}

Inline step 对象

inline step 对象是完成代码执行的安装说明步骤。

properties 类型​​ 描述 必需
type string 执行代码执行的说明步骤类型。 必须是 inline。 如果未提供值,则默认为 inline
description string 可选说明步骤说明。 最大长度:64 个字符。
处理程序 string 设备上可执行此步骤的处理程序标识。
模式:^\S+/\S+:\d{1,5}$
最小长度:5 个字符
最大长度:32 个字符
示例:microsoft/script:1microsoft/swupdate:2microsoft/apt:1
文件 string [1-10] 定义为 files 对象的更新文件的名称,由代理传递给处理程序。 每个元素长度必须为 1-255 个字符。
handlerProperties inlineStepHandlerProperties JSON 对象,由代理作为参数传递给处理程序。

不允许使用其他属性。

例如:

{
  "steps": [
    {
      "description": "pre-install script",
      "handler": "microsoft/script:1",
      "handlerProperties": {
        "arguments": "--pre-install"
      },
      "files": [
        "configure.sh"
      ]
    }
  ]
}

Reference step 对象

reference step 对象是安装另一个更新的安装说明步骤。

properties 类型​​ 描述 必需
type referenceStepType 安装其他更新的说明步骤类型。 必须是 reference
description stepDescription 可选说明步骤说明。 最大长度:64 个字符。
updateId updateId 唯一的更新标识符。

不允许使用其他属性。

例如:

{
  "steps": [
    {
      "type": "reference",
      "updateId": {
        "provider": "Contoso",
        "name": "Toaster.HeatingElement",
        "version": "1.0"
      }
    }
  ]
}

Files 对象

每个 files 对象都是一个更新有效负载文件(例如二进制文件、固件文件或脚本文件),该文件在更新中必须独一无二。

properties 类型​​ 描述 必需
filename string 更新有效负载文件名。 最大长度:255 个字符
sizeInBytes number 文件大小(字节数)。 最大大小:2147483648 字节
hashes 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 对象

hashes 对象包含以算法名称作为键的 base64 编码文件哈希。 必须至少指定 SHA-256 算法,如果代理支持,则可以指定其他算法。 有关如何正确计算哈希的示例,请参阅 AduUpdate.psm1 脚本中的 Get-AduFileHashes 函数。

properties 类型​​ 描述 必需
sha256 string 使用 SHA-256 算法的 Base64 编码文件哈希值。

允许使用其他属性。

例如:

{
  "hashes": {
    "sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
  }
}

relatedFiles 对象

relatedFiles 对象包含与一个或多个主要有效负载文件相关的文件的集合。 有关详细信息,请参阅使用相关文件功能引用多个更新文件

properties 类型​​ 描述 必需
filename string 与主有效负载文件关联的相关文件的列表。
sizeInBytes number 文件大小(字节数)。 最大大小:2147483648 字节。
hashes fileHashes 以算法名称作为键的 Base64 编码文件哈希。 有关详细信息,请参阅 Hashes 对象
properties relatedFilesProperties [0-5] 最多为 5 个键值对,其中键限制为 64 个 ASCII 字符,值为一个最多包含 256 个 ASCII 字符的 JObject。

允许使用其他属性。

例如:

"relatedFiles": [
  {
    "filename": "in1_in2_deltaupdate.dat",
    "sizeInBytes": 102910752,
    "hashes": {
      "sha256": "2MIldV8LkdKenjJasgTHuYi+apgtNQ9FeL2xsV3ikHY="
    },
    "properties": {
      "microsoft.sourceFileHashAlgorithm": "sha256",
      "microsoft.sourceFileHash": "YmFYwnEUddq2nZsBAn5v7gCRKdHx+TUntMz5tLwU+24="
    }
  }
],

downloadHandler 对象

downloadHandler 对象指定如何处理任何相关的文件。

properties 类型​​ 描述 必需
id string downloadHandler 的标识符。 限制为 64 个 ASCII 字符。 是(如果使用 relatedFiles

不允许使用其他属性。

例如:

"downloadHandler": {
  "id": "microsoft/delta:1"
}