共用方式為


使用對稱金鑰建立及佈建 IoT Edge for Linux on Windows 裝置

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

重要

支援 IoT Edge 1.5 LTS 和 IoT Edge 1.4 版本。 IoT Edge 1.4 LTS 於 2024 年 11 月 12 日結束生命週期。 如果您是舊版,請參閱更新 IoT Edge

本文提供註冊及佈建 IoT Edge for Linux on Windows 裝置的端對端指示。

連線到 IoT 中樞的每個裝置都有裝置識別碼,可用來追蹤雲端到裝置或裝置到雲端的通訊。 您可以使用連線資訊來設定裝置,其中包括 IoT 中樞主機名稱、裝置識別碼,以及裝置用來向 IoT 中樞驗證的資訊。

本文中的步驟會帶您完成稱為手動佈建的程序,您會在此程序中將單一裝置連線到其 IoT 中樞。 針對手動佈建,您有兩個選項可用來驗證 IoT Edge 裝置:

  • 對稱金鑰:當您在 IoT 中樞中建立新的裝置身分識別時,服務會建立兩個金鑰。 您會在裝置上放置其中一個金鑰,並在驗證時呈現 IoT 中樞的金鑰。

    這個驗證方法上手較為快速,但並非是安全的方法。

  • X.509 自我簽署:您可以建立兩個 X.509 身分識別憑證,並將其置於裝置上。 當您在 IoT 中樞中建立新的裝置身分識別時,您會從這兩個憑證提供指紋。 當裝置向 IoT 中樞進行驗證時,其會顯示一個憑證,而 IoT 中樞會確認憑證符合其指紋。

    此驗證方法較安全,建議用於實際執行案例。

本文說明如何使用對稱金鑰做為驗證方法。 如果您想要使用 X.509 憑證,請參閱使用 X.509 憑證建立及佈建 IoT Edge for Linux on Windows 裝置

注意

如果您有許多裝置可設定,且不想手動佈建每個裝置,請使用下列其中一篇文章來了解 IoT Edge 如何與 IoT 中樞裝置佈建服務搭配運作:

必要條件

本文說明如何註冊 IoT Edge 裝置及安裝 IoT Edge for Linux on Windows。 完成這些工作有不同的必要條件和公用程式。 在繼續之前,請先確定您已準備好所有必要條件。

裝置管理工具

您可以使用 Azure 入口網站Visual Studio CodeAzure CLI 來完成註冊裝置的步驟。 每個公用程式都有自己的必要條件,或可能需要安裝:

Azure 訂閱的免費或標準 IoT 中樞

裝置需求

符合下列最低需求的 Windows 裝置:

  • 系統需求

    • Windows 101/11 (專業版、企業版、IoT 企業版)
    • Windows Server 20191/2022
      1 Windows 10 和 Windows Server 2019 最低組建為 17763 版,且須安裝所有截至目前所有更新。
  • 硬體需求

    • 最小可用記憶體:1 GB
    • 最小可用磁碟空間:10 GB
  • 虛擬化支援

  • 網路支援

    • Windows Server 不會隨附預設交換器。 您需要先建立虛擬交換器,才能將 EFLOW 部署至 Windows Server 裝置。 如需詳細資訊,請參閱在 Windows 上建立適用於 Linux 的虛擬交換器
    • Windows 桌面版隨附可用於安裝 EFLOW 的預設交換器。 如有需要,您可以建立自己的自訂虛擬交換器。

提示

如果您想要在 Azure IoT Edge for Linux on Windows 部署上使用 GPU 加速 Linux 模組,有多種設定選項可供考慮。

您將需要根據 GPU 架構來安裝正確的驅動程式,而且可能需要存取 Windows 測試人員計畫組建。 若要判斷您的設定需求並滿足這些必要條件,請參閱適用於 Azure IoT Edge for Linux on Windows 的 GPU 加速

請確保您花點時間滿足 GPU 加速的必要條件。 如果您決定要在安裝期間啟用 GPU 加速,則需要重新啟動安裝流程。

開發人員工具

準備您的目標裝置,以安裝 Azure IoT Edge for Linux on Windows,並部署 Linux 虛擬機器:

  1. 將目標裝置上的執行原則設定為 AllSigned。 您可以使用下列命令,在提升權限的 PowerShell 提示字元中檢查目前的執行原則:

    Get-ExecutionPolicy -List
    

    如果 local machine 的執行原則不是 AllSigned,則您可以使用下列項目來設定執行原則:

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    

如需 Azure IoT Edge for Linux on Windows PowerShell 模組的詳細資訊,請參閱 PowerShell 函數參考

登記裝置

您可以根據喜好,使用 Azure 入口網站Visual Studio CodeAzure CLI來註冊裝置。

在 Azure 入口網站的 IoT 中樞中,您會在未啟用 Edge 的 IOT 裝置上分別建立及管理 IoT Edge 裝置。

  1. 登入 Azure 入口網站,然後瀏覽至 IoT 中樞。

  2. 在左側窗格中,從功能表中選取 [裝置],然後選取 [新增裝置]

  3. 在 [建立裝置] 頁面上,提供下列資訊:

    • 建立描述性的裝置識別碼,例如 my-edge-device-1 (全部小寫)。 複製此裝置識別碼,您稍後會用到。
    • 核取 [IoT Edge 裝置] 核取方塊。
    • 選取 [對稱金鑰] 作為 [驗證類型]。
    • 使用預設設定自動產生驗證金鑰,以將新裝置連線到中樞。
  4. 選取 [儲存]。

您應該會看到新裝置列在您的 IoT 中樞中。

現在您已在 IoT 中樞內註冊裝置,接著您可以擷取用來完成安裝及佈建 IoT Edge 執行階段的佈建資訊。

檢視已註冊的裝置並擷取佈建資訊

使用對稱金鑰驗證的裝置需要其連接字串,才能完成 IoT Edge 執行階段的安裝和佈建。 當您建立裝置時,會為 IoT Edge 裝置產生連接字串。 針對 Visual Studio Code 和 Azure CLI,連接字串位於 JSON 輸出中。 如果您使用 Azure 入口網站來建立裝置,您可以從裝置本身找到連接字串。 當您在 IoT 中樞中選取裝置時,它會以 Primary connection string 列在裝置頁面上。

連線至 IoT 中樞且已啟用邊緣的裝置會列在 IoT 中樞的 [裝置] 頁面上。 如果您有多個裝置,您可以選取 [IoT Edge 裝置] 類型來篩選清單,然後選取 [套用]

當您準備好開始設定裝置時,需要連接字串才能利用實體裝置在 IoT 中樞中的身分識別來連結實體裝置。 使用對稱金鑰進行驗證的裝置,可在入口網站中複製其連接字串。 在入門網站中尋找連接字串:

  1. 在 [裝置] 頁面上,從清單中選取 [IoT Edge 裝置識別碼]。
  2. 複製 [主要連接字串] 或 [次要連接字串] 的值。 任一金鑰都有效。

安裝 IoT Edge

在目標裝置上部署 Azure IoT Edge for Linux on Windows。

注意

下列 PowerShell 流程概述如何將 IoT Edge for Linux on Windows 部署至本機裝置。 若要使用 PowerShell 部署至遠端目標裝置,您可以使用遠端 PowerShell 建立遠端裝置的連線,並在該裝置上遠端執行這些命令。

  1. 在提升權限的 PowerShell 工作階段中,根據您的目標裝置結構執行下列其中一個命令,以下載 IoT Edge for Linux on Windows。

    • X64/AMD64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_X64" -OutFile $msiPath
      
    • ARM64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_ARM64" -OutFile $msiPath
      
  2. 在您的裝置上安裝 IoT Edge for Linux on Windows。

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn"
    

    您可以將 INSTALLDIR="<FULLY_QUALIFIED_PATH>"VHDXDIR="<FULLY_QUALIFIED_PATH>" 參數新增至安裝命令,以指定自訂安裝 IoT Edge for Linux on Windows 和 VHDX 目錄。 例如,如果您想要使用 D:\EFLOW 資料夾進行安裝,並將 D:\EFLOW-VHDX 用於安裝 VHDX,您可以使用下列的 PowerShell Cmdlet。

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn","INSTALLDIR=D:\EFLOW", "VHDXDIR=D:\EFLOW-VHDX"
    
  3. 如果尚未執行,請將目標裝置上的執行原則設定為 AllSigned。 請參閱命令的 PowerShell 必要條件,以檢查目前的執行原則,並將執行原則設定為 AllSigned

  4. 建立 IoT Edge for Linux on Windows 部署。 部署會建立 Linux 虛擬機器,並為您安裝 IoT Edge 執行階段。

    Deploy-Eflow
    

    提示

    根據預設,Deploy-Eflow 命令會建立具有 1 GB RAM、1 個 vCPU 核心和 16 GB 磁碟空間的 Linux 虛擬機器。 不過,VM 所需的資源與您部署的工作負載高度相關。 如果您的 VM 沒有足夠的記憶體可支援您的工作負載,將無法啟動。

    您可以使用 Deploy-Eflow 命令的選擇性參數來自訂虛擬機器的可用資源。 此項目需要在最低硬體需求的裝置上部署 EFLOW。

    例如,下列命令會建立具有1個 vCPU 核心的虛擬機、1 GB 的 RAM(以 MB 表示),以及 2 GB 的磁碟空間:

    Deploy-Eflow -cpuCount 1 -memoryInMB 1024 -vmDataSize 2
    

    如需所有可用的選擇性參數資訊,請參閱適用於 IoT Edge for Linux on Windows 的 PowerShell 函數

    警告

    根據預設,EFLOW Linux 虛擬機器沒有 DNS 設定。 使用 DHCP 的部署會嘗試取得 DHCP 伺服器傳播的 DNS 設定。 請檢查您的 DNS 設定,以確保網際網路連線能力。 如需詳細資訊,請參閱 AzEFLOW-DNS

    您可以將 GPU 指派給部署,以啟用 GPU 加速的 Linux 模組。 若要存取這些功能,您必須在 Windows 上安裝適用於 Linux 的 Azure IoT Edge GPU 加速中詳述的必要條件。

    若要使用 GPU 傳遞,請將 gpuNamegpuPassthroughTypegpuCount 參數新增至 Deploy-Eflow 命令。 如需所有可用的選擇性參數資訊,請參閱適用於 IoT Edge for Linux on Windows 的 PowerShell 函數

    警告

    啟用硬體裝置傳遞可能會增加安全性風險。 當適用時,Microsoft 會建議使用來自 GPU 廠商的裝置風險降低驅動程式。 如需詳細資訊,請參閱使用離散裝置指派來部署圖表裝置

  5. 輸入「Y」以接受授權條款。

  6. 請根據您的喜好設定,輸入「O」或「R」來切換 [選擇性診斷資料] 開啟或關閉。

  7. 部署完成後,PowerShell 視窗會報告 [部署成功]

    成功的部署會在訊息 PNG 結束時表示「部署成功」。

    成功部署之後,您即可佈建裝置。

使用雲端身分識別來佈建裝置

您已準備好使用您裝置的雲端身分識別和驗證資訊來設定您的裝置。

若要使用對稱金鑰布建裝置,您需要裝置的 連接字串

在您目標裝置的提高權限 PowerShell 工作階段中執行下列命令。 以您自己的值取代預留位置文字。

Provision-EflowVm -provisioningType ManualConnectionString -devConnString "PASTE_DEVICE_CONNECTION_STRING_HERE"

如需有關 Provision-EflowVM 命令的詳細資訊,請參閱適用於 IoT Edge for Linux on Windows 的 PowerShell 函數

確認設定成功

確認已成功在 IoT Edge 裝置上安裝並設定 IoT Edge for Linux on Windows。

  1. 使用 PowerShell 會話中的下列命令,在 Windows 虛擬機上登入適用於 Linux 的 IoT Edge:

    Connect-EflowVm
    

    注意

    唯一允許透過 SSH 連線至虛擬機器的帳戶,是建立虛擬機器的使用者。

  2. 登入之後,您可以使用下列 Linux 命令來檢查執行 IoT Edge 模組的清單:

    sudo iotedge list
    
  3. 如果您需要針對 IoT Edge 服務進行疑難排解,請使用下列 Linux 命令。

    1. 擷取服務記錄。

      sudo iotedge system logs
      
    2. 使用 check 工具來驗證裝置的設定和連線狀態。

      sudo iotedge check
      

    注意

    在新佈建的裝置上,您可能會看到與 IoT Edge 中樞相關的錯誤:

    × 實際執行整備程度:Edge Hub 的儲存體目錄會保存在主機檔案系統上 - 錯誤

    無法檢查 edgeHub 容器的目前狀態

    新佈建的裝置上預期會發生此錯誤,因為 IoT Edge 中樞模組未在執行中。 若要解決錯誤,請在 IoT 中樞內設定裝置的模組並建立部署。 建立裝置的部署會啟動裝置上的模組,包括 IoT Edge 中樞模組。

當您建立新的 IoT Edge 裝置時,它會在 Azure 入口網站 中顯示狀態代碼417 -- The device's deployment configuration is not set。 此狀態為正常,表示裝置已就緒可接收模組部署。

解除安裝 IoT Edge for Linux on Windows

如果您想要從裝置中移除 Azure IoT Edge for Linux on Windows,則請使用下列命令。

  1. 開啟 Windows 上的 [設定]
  2. 選取 [新增或移除程式]
  3. 選取 [Azure IoT Edge] 應用程式
  4. 選取 [解除安裝]

下一步