共用方式為


準備更新以匯入裝置更新

本文說明如何取得新的更新,並藉由建立匯入指令清單來準備匯入 azure Device Update for IoT 中樞。

必要條件

  • 使用IoT中樞設定的裝置更新帳戶和實例。

  • 針對IoT中樞內的裝置更新布建的IoT裝置或模擬器

  • 用於執行 Azure CLI 命令的 Azure Cloud Shell 中的 Bash 環境。 選取 [啟動 Cloud Shell] 以開啟 Cloud Shell,或選取 Azure 入口網站 頂端工具列中的 Cloud Shell 圖示。

    如果您想要的話,您可以在本機執行 Azure CLI 命令:

    1. 安裝 Azure CLI。 執行 az version 以查看已安裝的 Azure CLI 版本和相依連結庫,然後執行 az upgrade 以安裝最新版本。
    2. 執行 az login 以登入 Azure。
    3. azure-iot第一次使用時出現提示時,請安裝擴充功能。 若要確定您使用的是最新版本的擴充功能,請執行 az extension update --name azure-iot

提示

本文中的 Azure CLI 命令會使用反斜杠 \ 字元進行行接續,讓命令自變數更容易閱讀。 此語法適用於 Bash 環境。 如果您在 PowerShell 中執行這些命令,請將每個反斜杠取代為反引號 ',或完全移除它們。

取得裝置的更新檔案

取得使用裝置更新部署至裝置的更新檔案或檔案。 如果您從原始設備製造商 (OEM) 或解決方案整合者購買裝置,該組織可能會提供更新,而不需要建立更新檔案。 請連絡 OEM 或解決方案整合者,以了解他們如何提供更新。 如果您的組織為裝置建立軟體,它也會建立該軟體的更新。

若要建立更新, 請選擇映像型或套件型更新類型,視您的案例而定。

提示

您可以嘗試 映像型套件型Proxy 更新 教學課程,或只檢視來自這些教學課程的範例匯入指令清單檔案以供參考。

建立基本裝置更新匯入資訊清單

在您擁有更新檔案並熟悉基本 裝置更新匯入概念之後,請建立匯入指令清單來描述更新。 雖然您可以使用文本編輯器手動撰寫 JSON 匯入指令清單,但 Azure CLI az iot du init v5 命令可簡化程式。 如需匯入指令清單架構的詳細資訊,請參閱 裝置更新匯入架構和API資訊

此命令 az iot du init v5 會採用下列自變數。 除了 以外的 --file所有必要專案,如果未指定,則衍生自 --step 。 和--file之間--step有位置敏感度。

  • --update-provider--update-name--update-version 參數會updateId定義每個更新的唯一識別符物件。
  • --compat相容性對像是一組名稱/值組,描述此更新所相容裝置的屬性。 您可以只搭配一個提供者和名稱組合使用一組特定的相容性屬性。
  • 參數 --step 會指定裝置上的更新 handler ,例如 microsoft/script:1microsoft/swupdate:1、 或 microsoft/apt:1,以及與此更新相關聯的 properties 更新。 您可以使用 --step 一次以上。
  • 參數 --filepath 指定更新檔案的 。 您可以使用 --file 一或多次。
az iot du update init v5 \
    --update-provider <provider> \
    --update-name <update name> \
    --update-version <update version> \
    --compat <property1>=<value> <property2>=<value> \
    --step handler=<handler> properties=<JSON-formatted handler properties> \
    --file path=<paths and full file names of your update files> 

下列 az iot du update init v5 命令顯示範例值:

az iot du update init v5 \
    --update-provider Microsoft \
    --update-name AptUpdate \
    --update-version 1.0.0 \
    --compat manufacturer=Contoso model=Vacuum \
    --step handler=microsoft/script:1 properties='{"installedCriteria": "1.0"}' \
    --file path=/my/apt/manifest/file

提示

針對處理程式屬性,您可能需要逸出 JSON 中的特定字元。 例如,如果您在 PowerShell 中執行 Azure CLI,請使用 '\' 來逸出雙引號。

az iot du init v5 命令支援進階案例,包括可讓您定義不同更新檔案間之關聯性的相關檔案功能。 如需更多範例和選擇性參數的完整清單,請參閱 az iot du init v5 命令參考。

建立匯入指令清單並將其儲存為 JSON 檔案之後,您就可以 匯入更新。 如果您打算使用 Azure 入口網站 進行匯入,請務必將匯入指令清單命名為格式<指令清單名稱>.importmanifest.json

建立 Proxy 更新的進階裝置更新匯入資訊清單

如果您的更新較為複雜,例如 Proxy 更新,您可能需要建立多個匯入指令清單。 針對複雜的更新,您可以使用 az iot du update init v5 Azure CLI 命令來建立 匯入指令清單和某些數目的 匯入指令清單。

取代下列 Azure CLI 命令中的佔位元值。 如需您可以使用的值詳細數據,請參閱 匯入架構和 API 資訊。 下列範例顯示三個要部署到裝置的更新、父更新和兩個子更新。

az iot du update init v5 \
    --update-provider <child_1 update provider> \
    --update-name <child_1 update name> \
    --update-version <child_1 update version> \
    --compat manufacturer=<device manufacturer> model=<device model> \
    --step handler=<handler> \
    --file path=<paths and full file names of your update files> 
az iot du update init v5 \
    --update-provider <child_2 update provider> \
    --update-name <child_2 update name> \
    --update-version <child_2 update version> \
    --compat manufacturer=<device manufacturer> model=<device model> \
    --step handler=<handler> \
    --file path=<paths and full file names of your update files> 
az iot du update init v5 \
    --update-provider <parent update provider> \
    --update-name <parent update name> \
    --update-version <parent update version> \
    --compat manufacturer=<device manufacturer> model=<device model> \
    --step handler=<handler> properties=<any handler properties, JSON-formatted> \
    --file path=<paths and full file names of your update files> \
    --step updateId.provider=<child_1 update provider> updateId.name=<child_1 update name> updateId.version=<child_1 update version> \
    --step updateId.provider=<child_2 update provider> updateId.name=<child_2 update name> updateId.version=<child_2 update version>