將更新匯入 IoT 中樞的裝置更新:結構描述和其他資訊

如果您想要將更新匯入 IoT 中樞裝置更新,請務必先檢閱概念操作指南。 如果您對匯入資訊清單結構描述本身的詳細資料感興趣,請參閱下方。

匯入資訊清單 JSON 結構描述會裝載於 SchemaStore.org

結構描述

屬性 類型​ 描述 必要
$schema string JSON 結構描述參考。 No
updateId updateId 唯一更新識別碼。 Yes
description string 選用的更新描述。

長度上限:512 個字元
No
compatibility compatibility 此更新與其相容的裝置屬性集的清單。 Yes
instructions instructions 更新安裝指示。 Yes
files file [0-10] 更新承載檔案的清單。 所有檔案大小的總和不得超過 2 GB。 如果所有指示步驟都是參考步驟,則可以是空白或 Null。 No
manifestVersion string 匯入資訊清單結構描述版本。 必須是 5.0。 Yes
createdDateTime string 日期與時間匯入資訊清單是以 ISO 8601 格式建立。

範例: "2020-10-02T22:18:04.9446744Z"
Yes

不允許其他屬性。

updateId 物件

updateID 物件是每個更新的唯一識別碼。

屬性 類型​ 描述 必要
提供者 string 正在建立或直接負責更新的實體。 它可以是公司名稱。

模式:^[a-zA-Z0-9.-]+$
長度上限:64 個字元
Yes
name string 更新類別的識別碼。 它可以是裝置類別或型號名稱。

模式:^[a-zA-Z0-9.-]+$
長度上限:64 個字元
Yes
version string 兩到四個部分、以點分隔的數值版本號碼。 每個部分都必須是介於 0 到 2147483647 之間的數字,而且會捨棄前置零。

模式:^\d+(?:\.\d+)+$
範例:"1.0""2021.11.8"
Yes

不允許其他屬性。

例如:

{
  "updateId": {
    "provider": "Contoso",
    "name": "Toaster",
    "version": "1.0"
  }
}

相容性物件

相容性物件會描述此更新與其相容的裝置屬性。

  • 類型object
  • 屬性下限1
  • 屬性上限5

每個屬性都是類型字串的名稱-值組。

  • 屬性名稱長度下限1
  • 屬性名稱長度上限32
  • 屬性值長度下限1
  • 屬性值長度上限64

同一組完全相同的相容性屬性不能與一個以上的提供者及名稱組合搭配使用。

例如:

{
  "compatibility": [
    {
      "manufacturer": "Contoso",
      "model": "Toaster"
    }
  ]
}

instructions 物件

instructions 物件會提供更新安裝指示。 instructions 物件包含要執行的步驟清單。 步驟可以是要執行的程式碼或另一個更新的指標。

屬性 類型​ 描述 必要
steps array[1-10] 陣列中的每個元素都必須是 inlineStep 物件referenceStep 物件 Yes

不允許其他屬性。

例如:

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

inlineStep 物件

inline 步驟物件是執行程式碼執行的安裝指令步驟。

屬性 類型​ 描述 必要
type string 執行程式碼執行的指示步驟類型。 必須是 inline

如果未提供任何值,則預設為 inline
No
description string 選擇性的指示步驟描述。

長度上限:64 個字元
No
處理常式 string 裝置上可執行此步驟的處理常式的身分識別。

模式:^\S+/\S+:\d{1,5}$
長度下限:5 個字元
長度上限:32 個字元
範例:microsoft/script:1microsoft/swupdate:1microsoft/apt:1
Yes
files string [1-10] 代理程式將傳遞給處理常式、定義為 files 物件的更新檔案的名稱。 陣列中的每個元素長度必須介於 1 到 255 個字元之間。 Yes
handlerProperties inlineStepHandlerProperties 代理程式將傳遞至處理常式做為引數的 JSON 物件。 No

不允許其他屬性。

例如:

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

referenceStep 物件

reference 步驟物件是會安裝另一個更新的安裝指示步驟。

屬性 類型​ 描述 必要
type referenceStepType 安裝另一個更新的指示步驟類型。 必須是 reference Yes
description stepDescription 選擇性的指示步驟描述。

長度上限:64 個字元
No
updateId updateId 唯一更新識別碼。 Yes

不允許其他屬性。

例如:

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

file 物件

file 物件是更新承載檔案,例如二進位檔、韌體、指令碼等。每個檔案物件在更新內都必須是唯一的。

屬性 類型​ 描述 必要
filename string 更新承載檔案名稱。

長度上限:255 個字元
Yes
sizeInBytes number 檔案大小 (以位元組數為單位)。

大小上限:2147483648 個位元組
Yes
hashes fileHashes Base64 編碼的檔案雜湊會使用演算法名稱作為索引鍵。 至少必須指定 SHA-256 演算法,而如果代理程式支援,則可以指定額外的演算法。 如需如何計算雜湊的詳細資料,請參閱下方。 Yes
relatedFiles relatedFile[0-4] 一或多個主要承載檔案的相關檔案集合。 No
downloadHandler downloadHandler 指定如何處理任何相關的檔案。 只有在使用 relatedFiles 時才是

不允許其他屬性。

例如:

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

fileHashes 物件

Base64 編碼的檔案雜湊會使用演算法名稱作為索引鍵。 至少必須指定 SHA-256 演算法,而如果代理程式支援,則可以指定其他的演算法。 如需如何正確計算雜湊的範例,請參閱 AduUpdate.psm1 指令碼中的 Get-AduFileHashes 函式。

屬性 類型​ 描述 必要
sha256 string 使用 SHA-256 演算法的 Base64 編碼檔案雜湊值。 Yes

允許其他屬性。

例如:

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

relatedFiles 物件

一或多個主要承載檔案的相關檔案集合。

屬性 類型​ 描述 必要
filename string 與主要承載檔案相關聯的相關檔案清單。 Yes
sizeInBytes number 檔案大小 (以位元組數為單位)。

大小上限:2147483648 個位元組
Yes
hashes fileHashes Base64 編碼的檔案雜湊會使用演算法名稱作為索引鍵。 至少必須指定 SHA-256 演算法,而如果代理程式支援,則可以指定額外的演算法。 如需如何計算雜湊的詳細資料,請參閱下方。 Yes
properties relatedFilesProperties [0-5] 具有 5 個機碼值組的限制,其中索引鍵限制為 64 個 ASCII 字元,且值必須為 JObject (最多 256 個 ASCII 字元)。 No

允許其他屬性。

例如:

"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 字元的限制。 Yes

部允許其他屬性。

例如:

"downloadHandler": {
  "id": "microsoft/delta:1"
}

下一步

深入了解匯入概念

如果您已準備就緒,請嘗試匯入操作指南,其將逐步引導您完成匯入程序。