適用於 IoT 中樞 更新指令清單的 Azure 裝置更新
本文說明 Azure 裝置更新在更新部署期間 IoT 中樞 傳送至裝置的更新指令清單數據。 更新指令清單是串行化的 JSON 字串物件,其中包含要安裝之更新的相關元數據。
裝置更新會使用 IoT 隨插即用 傳送更新指令清單,並以密碼編譯方式簽署它,讓裝置更新代理程式可以驗證其真實性。 如需更新指令清單如何用來安全地安裝內容的詳細資訊,請參閱 裝置更新安全性。
匯入資訊清單與更新資訊清單
更新指令清單與裝置更新 匯入指令清單不同。
- 匯 入指令清單 是 JSON 檔案,描述要匯入裝置更新的更新。 無論誰建立裝置更新的更新,就會建立對應的匯入指令清單檔。
- 更新指令清單是 JSON 字串物件,會在更新期間將資訊傳達給裝置更新代理程式。 裝置更新服務會自動產生更新指令清單,方法是包含匯入指令清單中定義的一些相同屬性。
每種資訊清單類型有其自己的結構描述和結構描述版本。 如需匯入指令清單架構的詳細資訊,請參閱 裝置更新匯入指令清單架構。
更新資訊清單結構描述
更新指令清單 JSON 架構第 4 版裝載於 SchemaStore.org。
更新資訊清單範例
{
"manifestVersion": "4",
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
},
"compatibility": [
{
"manufacturer": "Contoso",
"model": "Toaster"
}
],
"instructions": {
"steps": [
{
"handler": "microsoft/swupdate:1",
"handlerProperties": {
"installedCriteria": "1.0"
},
"files": [
"fileId0"
]
}
]
},
"files": {
"fileId0": {
"filename": "contoso.toaster.1.0.swu",
"sizeInBytes": 718,
"hashes": {
"sha256": "mcB5SexMU4JOOzqmlJqKbue9qMskWY3EI/iVjJxCtAs="
}
}
},
"createdDateTime": "2021-09-28T18:32:01.8404544Z"
}
完整與迷你更新資訊清單
如果更新指令清單太大而無法有效率地通訊,裝置更新會以中斷連結的格式將它傳送至裝置,也稱為迷你更新指令清單。 迷你指令清單包含裝置更新代理程式可用來下載完整更新指令清單並驗證其真實性的更新指令清單的相關元數據。
下列範例顯示迷你更新指令清單:
{
"manifestVersion": "4",
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
},
"detachedManifestFileId": "fileId1",
"files": {
"fileId1": {
"filename": "contoso.toaster.1.0.updatemanifest.json",
"sizeInBytes": 2048,
"hashes": {
"sha256": "789s9PDfX4uA9wFUubyC30BWkLFbgmpkpmz1fEdqo2U="
}
}
}
}