共用方式為


更新 IoT Edge

適用於:IoT Edge 1.5 複選標記 IoT Edge 1.5 IoT Edge 1.4 複選標記 IoT Edge 1.4

重要

支援 IoT Edge 1.5 LTS 和 IoT Edge 1.4 LTS 版本。 IoT Edge 1.4 LTS 於 2024 年 11 月 12 日結束生命週期。

當 IoT Edge 服務發行新版本時,請更新 IoT Edge 裝置,以取得最新功能和安全性改善。 本文提供在新版本發行時如何更新 IoT Edge 裝置的相關資訊。

如果您想要更新至較新的版本,IoT Edge 裝置將有兩個邏輯元件需要更新。

  • 安全性子系統 - 它會在裝置上執行、處理以安全性為基礎的工作,並在裝置啟動時啟動模組。 安全性子系統只能從裝置本身進行更新。

  • IoT Edge 執行階段 - IoT Edge 執行階段是由 IoT Edge 中樞 (edgeHub) 和 IoT Edge 代理程式 (edgeAgent) 模組所組成。 根據您建構部署的方式,執行階段可以從裝置或從遠端進行更新。

更新方式

使用本文的各節來更新裝置上的安全性子系統和執行階段容器。

修補檔版本

當您在修補檔版本之間進行升級時,例如 1.4.1 升級到 1.4.2,更新順序並不重要。 您可以在安全性子系統或執行階段容器個別之前或之後升級。 若要在修補檔版本之間進行更新:

  1. 更新安全性子系統
  2. 更新執行階段容器
  3. 確認版本相符

您可以隨時針對升級程序進行疑難排解

主要或次要版本

當您在主要或次要版本之間升級時,例如從1.4升級至1.5,請同時更新安全性子系統和運行時間容器。 在發行之前,我們會測試安全性子系統和執行階段容器版本組合。 若要在主要或次要產品版本之間更新:

  1. 在裝置上,使用 sudo systemctl stop iotedge 命令停止 IoT Edge,並解除安裝

  2. 在裝置上,升級您的容器引擎 (DockerMoby)。

  3. 在裝置上,安裝 IoT Edge

    如果您要使用 iotedge config import 匯入舊的設定,請修改所產生 /etc/aziot/config.toml 檔案的 [agent.config] 映像,以使用 edgeAgent 的 1.4 映像。

    如需詳細資訊,請參閱設定 IoT Edge 裝置設定

  4. 在 IoT 中樞中,更新模組部署以參考最新的系統模組。

  5. 在裝置上,使用 sudo iotedge config apply 啟動 IoT Edge。

您可以隨時針對升級程序進行疑難排解

更新安全性子系統

IoT Edge 安全性子系統包含一組原生元件,必須在 IoT Edge 裝置上使用套件管理員進行更新。

請使用 iotedge version 命令檢查在您裝置上執行的安全性子系統版本。 如果使用 IoT Edge for Linux on Windows,您必須透過 SSH 連線到 Linux 虛擬機器,才能檢查版本。

在 Linux x64 裝置上,使用 apt-get 或適當的套件管理員,將安全性子系統更新至最新版本。

更新 apt

sudo apt-get update

注意

如需從 Microsoft 取得最新存放庫設定的指示,請參閱安裝 IoT Edge 的預備步驟。

檢查以檢視可用的 IoT Edge 版本:

apt list -a aziot-edge

更新 IoT Edge:

sudo apt-get install aziot-edge defender-iot-micro-agent-edge

執行 apt-get install aziot-edge 會升級安全性子系統,並將識別服務 (aziot-identity-service) 安裝為必要的相依性。

建議您使用 Edge 代理程式安裝微代理程式,以啟用 Edge 裝置的安全性監視和強化。 若要深入了解適用於 IoT 的 Microsoft Defender,請參閱對於裝置建置者而言,什麼是適用於 IoT 的 Microsoft Defender

然後,重新套用設定以確保系統完全更新。

sudo iotedge config apply

更新執行階段容器

更新 IoT Edge 代理程式和 IoT Edge 中樞容器的方式取決於您在部署中使用滾動標籤 (例如 1.5) 或特定標籤 (例如 1.5.1)。

使用 iotedge logs edgeAgentiotedge logs edgeHub 命令,檢查您裝置上目前的 IoT Edge 代理程式和 IoT Edge 中樞模組版本。 如果使用 IoT Edge for Linux on Windows,您必須透過 SSH 連線到 Linux 虛擬機器,才能檢查執行階段模組版本。

在主控台記錄中尋找容器版本的螢幕快照。

了解 IoT Edge 標記

IoT Edge 代理程式和 IoT Edge 中樞映像會標示與其相關聯的 IoT Edge 版本。 標記可透過兩種不同的使用方式用於執行階段映像上:

  • 累積標記 - 僅使用版本號碼的前兩個值來取得符合這些數字的最新映像。 例如,每當有新版本指向最新的 1.5.x 版本時,就會更新 1.5。 如果 IoT Edge 裝置的容器執行階段重新提取映像,執行階段模組就會更新為最新版本。 從 Azure 入口網站執行的部署預設為累積標記。 進行開發時建議使用此方法。

  • 特定標記 - 版本號碼的三個值全都會使用,以明確設定映像版本。 例如,1.5.0 在初始版本之後不會變更。 當您準備好要更新時,您可以在部署資訊清單中宣告新的版本號碼。 建議將此方法用於生產用途。

更新累積標記映像

如果您在部署中使用滾動標籤(例如,mcr.microsoft.com/azureiotedge-hub:1.5),則必須強制裝置上的容器運行時間提取最新版的映像。

從您的 IoT Edge 裝置中刪除映像的本機版本。 在 Windows 電腦上,解除安裝安全性子系統也會移除執行階段映像,因此您不需要再採取此步驟。

docker rmi mcr.microsoft.com/azureiotedge-hub:1.5
docker rmi mcr.microsoft.com/azureiotedge-agent:1.5

您可能需要使用強制 -f 旗標將映像移除。

IoT Edge 服務將會提取執行階段映像的最新版本,並自動在您的裝置上將其重新啟動。

更新特定標記映像

如果您在部署中使用特定標記 (例如 mcr.microsoft.com/azureiotedge-hub:1.4),則只需要更新部署資訊清單中的標記,並將變更套用至裝置即可。

  1. 在 Azure 入口網站的 IoT 中樞中,選取您的 IoT Edge裝置,然後選取 [設定模組]

  2. 在 [模組] 索引標籤上,選取 [執行階段設定]

  3. 在 [執行階段設定] 中,使用所需的版本更新 [Edge 代理程式] 區段中的 [映像 URI] 值。 例如, mcr.microsoft.com/azureiotedge-agent:1.5 不要選取 [套用 ]。

  4. 選取 [Edge 中樞] 索引標籤,並以相同的所需版本更新 [映像 URI] 值。 例如: mcr.microsoft.com/azureiotedge-hub:1.5

  5. 選取 [套用] 以儲存變更。

  6. 選取 [檢閱 + 建立]、檢閱 JSON 檔案中所見的部署,然後選取 [建立]

更新合作夥伴模組 URI

如果您使用合作夥伴模組,請使用合作夥伴所提供的映像 URI 來更新模組部署。 請連絡 IoT Edge 模組發行者 以取得更新的容器映像 URI。 使用發行者所提供的新映像URI更新您的裝置組態。

  1. 登入 Azure 入口網站,然後瀏覽至 IoT 中樞。
  2. 在左窗格的 [裝置管理] 功能表下,選取 [裝置]
  3. 從清單中選取使用合作夥伴模組的IoT Edge裝置。
  4. 在上方列中,選取 [設定模組]
  5. 選擇您想要以新映像 URI 更新的 IoT Edge 合作夥伴模組。
  6. 使用 發行者提供的新映像 URI 更新映像 URI 值。
  7. 選取 [套用] 以儲存變更。
  8. 選取 [檢閱 + 建立]、檢閱 JSON 檔案中所見的部署,然後選取 [建立]

確認版本相符

  1. 在您的裝置上,使用 iotedge version 來檢查安全性子系統版本。 輸出包含主要、次要和修訂版本號碼。 例如,iotedge 1.4.2

  2. 在您的裝置部署執行階段設定中,確認 edgeHubedgeAgent 映像 URI 版本符合安全性子系統的主要和次要版本。 如果安全性子系統版本為 1.4.2,則映像版本會是 1.4。 例如,mcr.microsoft.com/azureiotedge-hub:1.4mcr.microsoft.com/azureiotedge-agent:1.4

注意

將 IoT Edge 安全性子系統和執行階段容器更新為相同的支援發行版本。 雖然支援不相符的版本,但我們尚未測試所有版本組合。

若要尋找最新版的 Azure IoT Edge,請參閱 Azure IoT Edge 版本

疑難排解

您可以隨時從裝置執行下列命令,以檢視系統的記錄。

  • 使用 check 命令開始進行疑難排解。 其會針對常見問題執行設定和連線測試的集合。

    sudo iotedge check --verbose
    
  • 若要檢視 IoT Edge 系統的狀態,請執行:

    sudo iotedge system status 
    
  • 若要檢視主機元件記錄,請執行:

    sudo iotedge system logs
    
  • 若要檢查 edgeAgent 和 edgeHub 所回報的週期性問題,請執行:

    請務必將 <module> 取代為您自己的模組名稱。 如果沒有問題,您就不會看到任何輸出。

    sudo iotedge logs <module>
    

如需詳細資訊,請參閱針對 IoT Edge 裝置進行疑難排解

下一步

檢視最新的 Azure IoT Edge 版本

持續關注物聯網部落格中的最新更新和公告