Share via


使用對稱金鑰在 Windows 上建立和佈建 IoT Edge 裝置

適用於:yes 圖示IoT Edge 1.1

重要

IoT Edge 1.1終止支援日期為 2022 年 12 月 13 日。 如需此產品、服務、技術或 API 的支援資訊,請參閱 Microsoft 產品生命週期。 如需更新至最新版本IoT Edge的詳細資訊,請參閱更新IoT Edge

本文提供註冊和佈建 Windows IoT Edge 裝置的端對端指示。

注意

從 1.2 版開始,Azure IoT Edge 不再支援搭配 Windows 容器的 Azure IoT Edge。

請考慮使用新的方法在 Windows 裝置上執行 IoT Edge:Azure IoT Edge for Linux on Windows

如果您想要使用 Azure 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 憑證在 Windows 上建立和佈建 IoT Edge 裝置

注意

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

必要條件

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

裝置管理工具

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

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

裝置需求

Windows 裝置。

搭配 Windows 容器的 IoT Edge 需要 Windows 版本 1809/組建 17763,這是最新的 Windows 長期支援組建。 請務必檢閱支援的系統清單,以取得支援的 SKU 清單。

請注意,容器和主機上的 Windows 版本必須相符。 如需詳細資訊,請參閱因為 OS 不符而無法啟動模組

登記裝置

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

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

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

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

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

    • 建立描述性裝置識別碼。 記下此裝置識別碼,因為您稍後會用到。
    • 核取 [IoT Edge 裝置] 核取方塊。
    • 選取 [對稱金鑰] 作為 [驗證類型]。
    • 使用預設設定自動產生驗證金鑰,將新裝置連線到中樞。
  4. 選取 [儲存]。

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

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

使用對稱金鑰驗證的裝置需要其連接字串,才能完成 IoT Edge 執行階段的安裝和佈建。

連線至 IoT 中樞且已啟用 Edge 的裝置都列於 [裝置] 頁面。 您可以依 IoT Edge 裝置類型篩選清單。

如何在 Azure 入口網站 (IoT 中樞) 中檢視裝置的螢幕擷取畫面。

當您準備好開始設定裝置時,需要連接字串才能利用實體裝置在 IoT 中樞中的身分識別來連結實體裝置。

使用對稱金鑰進行驗證的裝置,可在入口網站中複製其連接字串。

  1. 在入口網站的 [裝置] 頁面中,從清單中選取 IoT Edge 裝置識別碼。
  2. 複製 [主要連接字串] 或 [次要連接字串] 的值。

安裝 IoT Edge

在本節中,您會為 IoT Edge 準備 Windows VM 或實體裝置。 然後,您會安裝 IoT Edge。

Azure IoT Edge 會依賴 OCI 相容的容器執行階段。 Moby (Moby 型引擎) 包含在安裝指令碼中,因此不需要其他步驟即可安裝該引擎。

若要安裝 IoT Edge 執行階段:

  1. 以系統管理員身分執行 PowerShell。

    使用 AMD64 工作階段來安裝 PowerShell,而不是使用 PowerShell (x86)。 如果您不確定正在使用的工作階段類型為何,請執行下列命令:

    (Get-Process -Id $PID).StartInfo.EnvironmentVariables["PROCESSOR_ARCHITECTURE"]
    
  2. 執行 Deploy-IoTEdge 命令,以執行下列工作:

    • 檢查您的 Windows 機器是否處於支援的版本
    • 開啟容器功能
    • 下載 Moby 引擎和 IoT Edge 執行階段
    . {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; `
    Deploy-IoTEdge
    
  3. 重新啟動您的裝置 (若出現提示)。

在裝置上安裝 IoT Edge 時,您可以使用其他參數來修改程序,包括:

  • 將流量導向經過 Proxy 伺服器
  • 將安裝程式指向本機目錄以進行離線安裝

如需這些其他參數的詳細資訊,請參閱使用 Windows 容器的 IoT Edge PowerShell 指令碼

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

現在,容器引擎和 IoT Edge 執行階段已安裝在您的裝置上,您已準備好進行下一個步驟,也就是使用裝置的雲端身分識別和驗證資訊來設定裝置。

  1. 在 IoT Edge 裝置上,以系統管理員身分執行 PowerShell。

  2. 使用 Initialize-IoTEdge 命令在您的機器上設定 IoT Edge 執行階段。 此命令預設為 Windows 容器的手動佈建。

    . {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; `
    Initialize-IoTEdge -ManualConnectionString -ContainerOs Windows
    
    • 如果您已將 IoTEdgeSecurityDaemon.ps1 指令碼下載到裝置以進行離線安裝或特定版本安裝,請務必參考指令碼的本機複本。

      . <path>/IoTEdgeSecurityDaemon.ps1
      Initialize-IoTEdge -ManualConnectionString -ContainerOs Windows
      
  3. 提供您在上一節中擷取的裝置連接字串 (若出現提示)。 裝置連接字串會將實體裝置與 IoT 中樞內的裝置識別碼產生關聯,並提供驗證資訊。

    裝置連接字串應採用下列格式,且不應包含引號:HostName={IoT_hub_name}.azure-devices.net;DeviceId={device_name};SharedAccessKey={key}

當您手動佈建裝置時,可以使用其他參數修改程序,包括:

  • 將流量導向經過 Proxy 伺服器
  • 宣告特定的 edgeAgent 容器映像,並在在私人登錄時提供認證

如需這些其他參數的詳細資訊,請參閱使用 Windows 容器的 IoT Edge PowerShell 指令碼

確認設定成功

確認執行階段已在您的 IoT Edge 裝置上成功安裝並設定。

檢查 IoT Edge 服務的狀態。

Get-Service iotedge

檢查服務記錄。

. {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; Get-IoTEdgeLog

列出執行中的模組。

iotedge list

離線或特定版本安裝 (選擇性)

本節中的步驟適用於標準安裝步驟未涵蓋的情況。 可能包括:

  • 離線時安裝 IoT Edge
  • 安裝候選版
  • 安裝最新版本以外的版本

安裝期間會下載三個檔案:

  • 其中包含安裝指示的 PowerShell 指令碼
  • Microsoft Azure IoT Edge cab,其中包含 IoT Edge 安全性精靈 (iotedged)、Moby 容器引擎和 Moby CLI
  • Visual C++ 可轉散發套件 (VC 執行階段) 安裝程式

如果您的裝置在安裝期間時會離線,或是想要安裝特定版本的 IoT Edge,可以事先將這些檔案下載到裝置。 安裝時,請將安裝指令碼指向包含下載檔案的目錄。 安裝程式會先檢查該目錄,然後僅下載找不到的元件。 如果所有檔案皆可離線使用,您就可以在沒有網際網路連線的情況下進行安裝。

  1. 如需最新的 IoT Edge 安裝檔案及先前版本的相關資訊,請參閱 Azure IoT Edge 版本

  2. 尋找您要安裝的版本,並從版本資訊的 [資產] 區段,將下列檔案下載到您的 IoT 裝置:

    • IoTEdgeSecurityDaemon.ps1
    • 1.1 發行通道中的 Microsoft-Azure-IoTEdge-amd64.cab。

    請務必在與所用.cab 檔案相同的版本中使用 PowerShell 指令碼,因為功能性會變更為在每個版本中支援這些功能。

  3. 如果您下載的 .cab 檔案有結構尾碼,請將檔案重新命名為只有 Microsoft-Azure-IoTEdge.cab

  4. 選擇性地下載 Visual C++ 可轉散發套件的安裝程式。 例如,PowerShell 指令碼會使用此版本:vc_redist.x64.exe。 將安裝程式儲存在 IoT 裝置上與 IoT Edge 檔案相同的資料夾中。

  5. 若要使用離線元件進行安裝,請對 PowerShell 指令碼的本機複本使用點溯源 (dot source)

  6. 使用 -OfflineInstallationPath 參數執行 Deploy-IoTEdge 命令。 提供檔案目錄的絕對路徑。 例如,

    . path_to_powershell_module_here\IoTEdgeSecurityDaemon.ps1
    Deploy-IoTEdge -OfflineInstallationPath path_to_file_directory_here
    

    部署命令會使用所提供本機檔案目錄中找到的任何元件。 如果遺漏 .cab 檔案或 Visual C++ 安裝程式,命令會嘗試下載這些項目。

解除安裝 IoT Edge

如果您想要從 Windows 裝置中移除 IoT Edge 安裝,請從管理 PowerShell 視窗中使用 Uninstall-IoTEdge 命令。 此命令會移除 IoT Edge 執行階段,以及您現有的設定和 Moby 引擎資料。

. {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; `
Uninstall-IoTEdge

如需有關解除安裝選項的詳細資訊,請使用 Get-Help Uninstall-IoTEdge -full 命令。

下一步

繼續部署 IoT Edge 模組,以了解如何將模組部署至您的裝置。