共用方式為


布建 IoT 中樞 代理程式的 Azure 裝置更新

裝置更新模組代理程式可以與其他系統進程和IoT Edge模組一起執行,這些模組會連線到您 IoT 中樞,做為相同邏輯裝置的一部分。 本文說明如何將裝置更新代理程式布建為模組身分識別。

注意

如果您使用裝置更新代理程式,請確定您使用的是 1.0.0 版正式運作 (GA) 版本。 您可以在IoT裝置對應項的屬性區段中,檢查已安裝的裝置更新代理程式和傳遞優化代理程式。 如需詳細資訊,請參閱 將裝置和群組移轉至最新的裝置更新版本

模組身分識別和裝置身分識別

您可以在每個 Azure IoT 中樞 裝置身分識別下建立最多 50 個模組身分識別。 每個模組身分識別都會隱含地產生模組身分識別對應項。 在裝置端,您可以使用 IoT 中樞 裝置 SDK 來建立模組,每個模組都會開啟與 IoT 中樞 的獨立連線。

模組身分識別和模組身分識別對應項提供與裝置身分識別和裝置對應項類似的功能,但數據粒度更精細。 如需詳細資訊,請參閱了解和使用 Azure IoT 中樞的模組對應項

當您將裝置更新代理程式布建為模組身分識別時,裝置與裝置更新服務之間的所有 通訊 都必須透過模組對應項進行。 當您建立 裝置群組時,請記得標記裝置的模組對應項。 如果您從裝置層級代理程式移轉至將代理程式新增為模組身分識別,請移除透過裝置對應項通訊的較舊代理程式。

支援的更新類型

裝置更新透過空中更新類型支援下列IoT裝置:

準備套件更新

若要設定 IoT 裝置或 IoT Edge 裝置以安裝 套件型更新,請依照下列步驟新增 packages.microsoft.com 至電腦的存放庫:

  1. 在您要安裝裝置更新代理程式的機器或IoT裝置上開啟終端機視窗。

  2. 安裝符合您裝置作業系統的存放庫組態,例如:

    curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/prod.list > ./microsoft-prod.list
    
  3. 將產生的清單複製到您的 sources.list.d 目錄。

    sudo cp ./microsoft-prod.list /etc/apt/sources.list.d/
    
  4. 安裝 Microsoft GPG 公開金鑰。

    curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
    
    sudo cp ./microsoft.gpg /etc/apt/trusted.gpg.d/
    

布建裝置更新代理程式

您可以在已啟用 IoT Edge 的裝置或非 IoT Edge IoT 裝置上,將裝置更新代理程式佈建為模組身分識別。 若要檢查您的裝置上是否已啟用IoT Edge,請參閱 檢視已註冊的裝置並擷取布建資訊

您可以從 [發行] 頁面上的 [資產] 區段下載要使用的範例映射。 在 Tutorial_RaspberryPi3.zip,swUpdate 檔案是基底映射,您可以在 Raspberry Pi B3+ 面板上閃爍。 .gz檔案是您可以透過裝置更新匯入的更新。 如需詳細資訊,請參閱使用Raspberry Pi 映像 IoT 中樞的 Azure 裝置更新。

在 IoT Edge 啟用的裝置上

請遵循下列指示,在已啟用IoT Edge的裝置上 布建裝置更新代理程式:

  1. 請遵循手動布建單一 Linux IoT Edge 裝置上的指示。

  2. 執行下列命令來安裝裝置更新映像更新代理程式:

    sudo apt-get install deviceupdate-agent
    
  3. 安裝裝置更新套件更新代理程式。

    • 如需來自 packages.microsoft.com 的最新代理程式版本,請更新裝置上的套件清單,並使用下列專案來安裝裝置更新代理程式套件及其相依性:

      sudo apt-get update
      
      sudo apt-get install deviceupdate-agent
      
    • 針對候選版 (rc) 代理程式版本,將 .deb 檔案從 Releases 下載到您要安裝裝置更新代理程式的機器,然後執行下列命令:

      sudo apt-get install -y ./"<PATH TO FILE>"/"<.DEB FILE NAME>"
      
    • 如果您要為已中斷連線的裝置案例設定Microsoft連線快取 (MCC),請安裝傳遞優化 APT 外掛程式,如下所示:

      sudo apt-get install deliveryoptimization-plugin-apt
      

在已啟用非IoT Edge的裝置上

請遵循這些指示,在未安裝IoT Edge的Linux IoT裝置上布建裝置更新代理程式。

  1. 遵循安裝 Azure IoT 身分識別服務中的 指示,安裝最新版的 IoT 身分識別服務

  2. 遵循 設定 Azure IoT 識別服務中的指示,設定 IoT 識別服務。

  3. 執行下列命令來安裝裝置更新代理程式:

    sudo apt-get install deviceupdate-agent
    

注意

如果您的IoT裝置無法執行IoT身分識別服務或IoT Edge,這會配套IoT身分識別服務,您仍然可以安裝裝置更新代理程式,並使用 連接字串 進行設定

設定裝置更新代理程式

安裝裝置更新代理程序之後,請執行下列命令來編輯裝置更新配置檔。

sudo nano /etc/adu/du-config.json

在du-config.json檔案中,設定具有Place value here佔位元的所有值。 對於使用IoT身分識別服務進行布建的代理程式,請將變更 connectionTypeAIS,並將欄位設定 ConnectionData 為空字串。 如需範例,請參閱 範例「du-config.json」檔案內容

使用連接字串

若要測試或限制裝置,您可以設定裝置更新代理程式,而不需使用IoT身分識別服務。 您可以使用 連接字串 從模組或裝置佈建裝置更新代理程式。

  1. 在 Azure 入口網站 中,複製主要 連接字串。 如果裝置更新代理程式設定為模組身分識別,請複製模組的主要 連接字串。 否則,請複製裝置的主要 連接字串。

  2. 在您安裝裝置更新代理程式的機器或 IoT 裝置的終端機視窗中,執行下列命令來 編輯裝置更新設定檔

  3. 在du-config.json檔案中,設定具有Place value here佔位元的所有值,然後輸入複製的主要 連接字串 做為connectionData值。 如需範例,請參閱 範例「du-config.json」檔案內容

啟動裝置更新代理程式

啟動裝置更新代理程式,並確認它已成功在您的裝置上執行。

  1. 在已安裝裝置更新代理程式的機器或IoT裝置的終端機視窗中,執行下列命令來重新啟動代理程式:

    sudo systemctl restart deviceupdate-agent
    
  2. 執行下列命令來檢查代理程序狀態。

    sudo systemctl status deviceupdate-agent
    

    您應該看到狀態 。 OK

  3. 在 [IoT 中樞 入口網站] 頁面上,移至 [裝置] 或 [IoT Edge] 以尋找您設定的裝置,並查看以模組身分執行的裝置更新代理程式。 例如:

    顯示連線狀態的裝置更新模組名稱圖表。

在 Proxy 伺服器後方啟用裝置更新代理程式

執行裝置更新代理程式的裝置會傳送 HTTPS 要求,以與 IoT 中樞 通訊。 如果您將裝置連線到使用 Proxy 伺服器的網路,您必須設定裝置更新系統服務以透過伺服器進行通訊。

設定裝置更新之前,請確定您有 Proxy URL。 Proxy URL 的格式為 protocol://proxy_host:proxy_port。

執行下列命令來瀏覽至裝置更新設定:

sudo systemctl edit deviceupdate-agent.service

將 Proxy 詳細數據新增至組態

[Service]
Environment="https_proxy=<Proxy URL>"

重新啟動代理程式以套用變更:

sudo systemctl daemon-reload
sudo systemctl restart deviceupdate-agent
sudo systemctl status deviceupdate-agent

建置並執行裝置更新代理程式

您也可以建置和修改自己的自訂裝置更新代理程式。 請遵循如何建置裝置更新代理程式以從來源建置裝置更新代理程式的指示

成功建置代理程序之後,請遵循執行 IoT 中樞 參考代理程式的裝置更新來執行代理程式。 若要進行將代理程式併入映像所需的變更,請遵循 如何修改裝置更新代理程序代碼

疑難排解

如果您遇到問題,請檢閱 IoT 中樞 疑難解答指南裝置更新,以協助解決問題,並收集提供給Microsoft的必要資訊。