如果您想要將更新匯入裝置更新至IoT中樞,請務必先檢閱 概念 和 操作指南。 如果您對匯入指令清單架構的詳細數據或 API 許可權的相關信息感興趣,請參閱下方。
匯入指令清單 JSON 架構裝載於 SchemaStore.org。
圖式
| 財產 | 類型 | 說明 | 為必填項目 |
|---|---|---|---|
| $schema | string |
JSON 架構參考。 | 否 |
| updateId | updateId |
唯一更新標識碼。 | 是的 |
| 描述 | string |
更新的描述可以選擇性提供。 最大長度:512 個字元 |
否 |
| 相容性 | compatibility |
這次更新相容的裝置屬性集清單。 | 是的 |
| instructions | 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"
}
}
]
}
file 物件
檔案物件是更新承載檔案,例如二進位檔、韌體、腳本等。每個檔案物件在更新內都必須是唯一的。
| 財產 | 類型 | 說明 | 為必填項目 |
|---|---|---|---|
| 檔名 | string |
更新承載檔名。 最大長度:255 個字元 |
是的 |
| sizeInBytes | number |
檔案大小,以位元組數為單位。 大小上限:2147483648個字節 |
是的 |
| 散列 | 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,這將逐步引導您完成匯入過程。