共用方式為


匯入更新至IoT Hub裝置更新:結構和其他資訊

如果您想要將更新匯入裝置更新至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,這將逐步引導您完成匯入過程。