你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
将更新导入 Device Update for IoT Hub:架构和其他信息
如果要将更新导入 Device Update for IoT Hub,请确保先查看概念和操作指南。 如果你对导入清单架构本身的详细信息感兴趣,请参阅下文。
导入清单 JSON 架构托管在 SchemaStore.org。
架构
属性 | 类型 | 描述 | 必需 |
---|---|---|---|
$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 对象
updateID 对象是每个更新的唯一标识符。
属性 | 类型 | 描述 | 必需 |
---|---|---|---|
提供程序 | string |
正在创建或直接负责更新的实体。 它可以是公司名称。 模式: ^[a-zA-Z0-9.-]+$ 最大长度:64 个字符 |
是 |
name | string |
更新类的标识符。 它可以是设备类或模型名称。 模式: ^[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
每个属性都是字符串类型的名称/值对。
- 最小属性名称长度:
1
- 最大属性名称长度:
32
- 最小属性值长度:
1
- 最大属性值长度:
64
同一完整的兼容性属性集不能与多个更新提供程序和名称组合一起使用。
例如:
{
"compatibility": [
{
"manufacturer": "Contoso",
"model": "Toaster"
}
]
}
instructions 对象
instructions 对象提供更新安装说明。 instructions 对象包含要执行的步骤列表。 步骤可以是要执行的代码,也可以是指向另一个更新的指针。
属性 | 类型 | 描述 | 必需 |
---|---|---|---|
steps | array[1-10] |
数组中的每个元素必须是 inlineStep 对象或 referenceStep 对象。 | 是 |
不允许使用其他属性。
例如:
{
"instructions": {
"steps": [
{
"type": "inline",
...
},
{
"type": "reference",
...
}
]
}
}
inlineStep 对象
inlinestep 对象是执行代码执行的安装说明步骤。
属性 | 类型 | 描述 | 必需 |
---|---|---|---|
type | string |
执行代码执行的说明步骤类型。 必须是 inline 。如果未提供值,则默认为 inline 。 |
否 |
description | 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 对象
referencestep 对象是安装另一个更新的安装说明步骤。
属性 | 类型 | 描述 | 必需 |
---|---|---|---|
type | referenceStepType |
安装其他更新的说明步骤类型。 必须是 reference 。 |
是 |
description | stepDescription |
可选说明步骤说明。 最大长度:64 个字符 |
否 |
updateId | updateId |
唯一的更新标识符。 | 是 |
不允许使用其他属性。
例如:
{
"steps": [
{
"type": "reference",
"updateId": {
"provider": "Contoso",
"name": "Toaster.HeatingElement",
"version": "1.0"
}
}
]
}
file 对象
file 对象是更新有效负载文件,例如二进制文件、固件、脚本等。每个 file 对象在更新中必须唯一。
属性 | 类型 | 描述 | 必需 |
---|---|---|---|
filename | string |
更新有效负载文件名。 最大长度:255 个字符 |
是 |
sizeInBytes | number |
文件大小(字节数)。 最大大小:2147483648 字节 |
是 |
hashes | fileHashes |
以算法名称作为键的 Base64 编码文件哈希。 必须至少指定 SHA-256 算法,如果代理支持,则可以指定其他算法。 有关如何计算哈希的详细信息,请参阅下文。 | 是 |
relatedFiles | relatedFile[0-4] |
将相关文件集合到一个或多个主有效负载文件。 | 否 |
downloadHandler | downloadHandler |
指定如何处理任何相关文件。 | 仅在使用 relatedFiles 的情况下为是 |
不允许使用其他属性。
例如:
{
"files": [
{
"filename": "configure.sh",
"sizeInBytes": 7558,
"hashes": {...}
}
]
}
fileHashes 对象
以算法名称作为键的 Base64 编码文件哈希。 必须至少指定 SHA-256 算法,如果代理支持,则可以指定其他算法。 有关如何正确计算哈希的示例,请参阅 AduUpdate.psm1 脚本中的 Get-AduFileHashes 函数。
属性 | 类型 | 描述 | 必需 |
---|---|---|---|
sha256 | string |
使用 SHA-256 算法的 Base64 编码文件哈希值。 | 是 |
允许使用其他属性。
例如:
{
"hashes": {
"sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
}
}
relatedFiles 对象
将相关文件集合到一个或多个主有效负载文件。
属性 | 类型 | 描述 | 必需 |
---|---|---|---|
filename | string |
与主有效负载文件关联的相关文件的列表。 | 是 |
sizeInBytes | number |
文件大小(字节数)。 最大大小:2147483648 字节 |
是 |
hashes | fileHashes |
以算法名称作为键的 Base64 编码文件哈希。 必须至少指定 SHA-256 算法,如果代理支持,则可以指定其他算法。 有关如何计算哈希的详细信息,请参阅下文。 | 是 |
properties | relatedFilesProperties [0-5] |
限制为 5 个键值对,其中键限制为 64 个 ASCII 字符,值为 JObject(最多包含 256 个 ASCII 字符)。 | 否 |
允许使用其他属性。
例如:
"relatedFiles": [
{
"filename": "in1_in2_deltaupdate.dat",
"sizeInBytes": 102910752,
"hashes": {
"sha256": "2MIldV8LkdKenjJasgTHuYi+apgtNQ9FeL2xsV3ikHY="
},
"properties": {
"microsoft.sourceFileHashAlgorithm": "sha256",
"microsoft.sourceFileHash": "YmFYwnEUddq2nZsBAn5v7gCRKdHx+TUntMz5tLwU+24="
}
}
],
有关详细信息,请参阅使用相关文件功能引用多个更新文件。
downloadHandler 对象
指定如何处理任何相关文件。
属性 | 类型 | 描述 | 必需 |
---|---|---|---|
id | string |
downloadHandler 的标识符。 限制为 64 个 ASCII 字符。 | 是 |
不允许使用其他属性。
例如:
"downloadHandler": {
"id": "microsoft/delta:1"
}
后续步骤
详细了解导入概念。
如果已准备就绪,请尝试导入操作指南,它将逐步引导你完成导入过程。