如果要将更新导入到 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:1 microsoft/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 指南,该指南将逐步引导你完成导入过程。