将更新导入到 IoT 中心设备更新:架构和其他信息

如果要将更新导入到 IoT 中心的设备更新中,请务必先查看 概念作指南 。 如果对导入清单架构的详细信息或有关 API 权限的信息感兴趣,请参阅下文。

导入清单 JSON 架构托管在 SchemaStore.org

图式

财产 类型 说明 必选
$schema string JSON 架构参考。
updateId updateId 唯一更新标识符。 是的
说明 string 可选更新说明。

最大长度:512 个字符
兼容性 compatibility 该更新与以下设备属性集兼容的列表。 是的
指示 instructions 更新安装说明。 是的
文件 file [0-10] 更新包文件列表。 所有文件大小的总和可能不超过 2 GB。 如果所有说明步骤都是参考步骤,则可能为 null 或为空。
manifestVersion string 导入清单架构版本。 必须为 4.0。 是的
创建日期时间 string 以 ISO 8601 格式创建日期和时间导入清单。

示例:"2020-10-02T22:18:04.9446744Z"
是的

不允许使用其他属性。

updateId 对象

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"
  }
}

兼容性对象

兼容性对象描述此更新与之兼容的设备的属性。

  • 类型object
  • 最小属性1
  • 最大属性5

每个属性都是字符串类型的名称值对。

  • 最小属性名称长度1
  • 最大属性名称长度32
  • 属性值的最小长度1
  • 最大属性值长度64

同一组完全相同的兼容性属性不能与多个更新提供程序和名称组合一起使用。

例如:

{
  "compatibility": [
    {
      "deviceManufacturer": "Contoso",
      "deviceModel": "Toaster"
    }
  ]
}

指令对象

指令对象提供更新安装说明。 指令对象包含要执行的步骤列表。 步骤可以是执行的代码,也可以是指向其他更新的指针。

财产 类型 说明 必选
步骤 array[1-10] 数组中的每个元素必须是 inlineStep 对象referenceStep 对象 是的

不允许使用其他属性。

例如:

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

inlineStep 对象

内联步骤对象是一个进行代码执行的安装指令步骤。

财产 类型 说明 必选
类型 string 用于代码执行的指令步骤类型。 必须是 inline

如果未提供任何值,则默认为inline
说明 string 可选步骤描述。

最大长度:64 个字符
处理器 string 可在设备上执行此步骤的处理程序身份。

模式:^\S+/\S+:\d{1,5}$
最小长度:5 个字符
最大长度:32 个字符
示例:microsoft/script:1、、 microsoft/swupdate:1microsoft/apt:1
是的
文件 string [1-10] 定义为文件对象的更新文件名称,这些文件将由代理传递给处理程序。 数组中的每个元素的长度必须介于 1 到 255 个字符之间。 是的
handlerProperties inlineStepHandlerProperties 代理将作为参数传递给处理程序的 JSON 对象。

不允许使用其他属性。

例如:

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

referenceStep 对象

引用步骤对象是一个安装说明步骤,用于安装另外的更新。

财产 类型 说明 必选
类型 referenceStepType 安装另一个更新的指令步骤类型。 必须是 reference 是的
说明 stepDescription 可选步骤描述。

最大长度:64 个字符
updateId updateId 唯一更新标识符。 是的

不允许使用其他属性。

例如:

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

文件对象

文件对象是更新有效负载文件,例如二进制文件、固件、脚本等。每个文件对象在更新中必须是唯一的。

财产 类型 说明 必选
文件名 string 更新数据包的文件名。

最大长度:255 个字符
是的
sizeInBytes number 文件大小(以字节数为单位)。

最大大小:2147483648字节
是的
Hashes fileHashes 使用算法名称作为键的 Base64 编码文件哈希。 必须至少指定 SHA-256 算法,并且代理支持时可以指定其他算法。 有关如何计算哈希的详细信息,请参阅下文。 是的

不允许使用其他属性。

例如:

{
  "files": [
    {
      "filename": "configure.sh",
      "sizeInBytes": 7558,
      "hashes": {...}
    }
  ]
}

fileHashes 对象

使用 Base64 编码的文件哈希,其中算法名称作为键。 必须至少指定 SHA-256 算法,并且代理支持时可以指定其他算法。 有关如何正确计算哈希的示例,请参阅 AduUpdate.psm1 脚本中的 Get-AduFileHashes 函数。

财产 类型 说明 必选
sha256 string 使用 SHA-256 算法的 Base64 编码文件哈希值。 是的

允许其他属性。

例如:

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

后续步骤

详细了解 导入概念

如果已准备就绪,请尝试 导入 How-To 指南,该指南将逐步引导你完成导入过程。