使用對稱金鑰在 Windows 上建立和佈建 IoT Edge 裝置
適用於: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 Code 或 Azure CLI 來完成註冊裝置的步驟。 每一個公用程式都有自己的必要條件:
Azure 訂閱的免費或標準 IoT 中樞。
裝置需求
Windows 裝置。
搭配 Windows 容器的 IoT Edge 需要 Windows 版本 1809/組建 17763,這是最新的 Windows 長期支援組建。 請務必檢閱支援的系統清單,以取得支援的 SKU 清單。
請注意,容器和主機上的 Windows 版本必須相符。 如需詳細資訊,請參閱因為 OS 不符而無法啟動模組。
登記裝置
您可以根據喜好,使用 Azure 入口網站、Visual Studio Code 或Azure CLI來註冊裝置。
在 Azure 入口網站的 IoT 中樞中,您會在未啟用 Edge 的 IOT 裝置上分別建立及管理 IoT Edge 裝置。
登入 Azure 入口網站,然後瀏覽至 IoT 中樞。
在左側窗格中,從功能表中選取 [裝置],然後選取 [新增裝置]。
在 [建立裝置] 頁面上,提供下列資訊:
- 建立描述性裝置識別碼。 記下此裝置識別碼,因為您稍後會用到。
- 核取 [IoT Edge 裝置] 核取方塊。
- 選取 [對稱金鑰] 作為 [驗證類型]。
- 使用預設設定自動產生驗證金鑰,將新裝置連線到中樞。
選取 [儲存]。
現在您已在 IoT 中樞內註冊裝置,接著請擷取用來完成安裝及佈建 IoT Edge 執行階段的資訊。
檢視已註冊的裝置並擷取佈建資訊
使用對稱金鑰驗證的裝置需要其連接字串,才能完成 IoT Edge 執行階段的安裝和佈建。
連線至 IoT 中樞且已啟用 Edge 的裝置都列於 [裝置] 頁面。 您可以依 IoT Edge 裝置類型篩選清單。
當您準備好開始設定裝置時,需要連接字串才能利用實體裝置在 IoT 中樞中的身分識別來連結實體裝置。
使用對稱金鑰進行驗證的裝置,可在入口網站中複製其連接字串。
- 在入口網站的 [裝置] 頁面中,從清單中選取 IoT Edge 裝置識別碼。
- 複製 [主要連接字串] 或 [次要連接字串] 的值。
安裝 IoT Edge
在本節中,您會為 IoT Edge 準備 Windows VM 或實體裝置。 然後,您會安裝 IoT Edge。
Azure IoT Edge 會依賴 OCI 相容的容器執行階段。 Moby (Moby 型引擎) 包含在安裝指令碼中,因此不需要其他步驟即可安裝該引擎。
若要安裝 IoT Edge 執行階段:
以系統管理員身分執行 PowerShell。
使用 AMD64 工作階段來安裝 PowerShell,而不是使用 PowerShell (x86)。 如果您不確定正在使用的工作階段類型為何,請執行下列命令:
(Get-Process -Id $PID).StartInfo.EnvironmentVariables["PROCESSOR_ARCHITECTURE"]
執行 Deploy-IoTEdge 命令,以執行下列工作:
- 檢查您的 Windows 機器是否處於支援的版本
- 開啟容器功能
- 下載 Moby 引擎和 IoT Edge 執行階段
. {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; ` Deploy-IoTEdge
重新啟動您的裝置 (若出現提示)。
在裝置上安裝 IoT Edge 時,您可以使用其他參數來修改程序,包括:
- 將流量導向經過 Proxy 伺服器
- 將安裝程式指向本機目錄以進行離線安裝
如需這些其他參數的詳細資訊,請參閱使用 Windows 容器的 IoT Edge PowerShell 指令碼。
使用雲端身分識別來佈建裝置
現在,容器引擎和 IoT Edge 執行階段已安裝在您的裝置上,您已準備好進行下一個步驟,也就是使用裝置的雲端身分識別和驗證資訊來設定裝置。
在 IoT Edge 裝置上,以系統管理員身分執行 PowerShell。
使用 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
提供您在上一節中擷取的裝置連接字串 (若出現提示)。 裝置連接字串會將實體裝置與 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,可以事先將這些檔案下載到裝置。 安裝時,請將安裝指令碼指向包含下載檔案的目錄。 安裝程式會先檢查該目錄,然後僅下載找不到的元件。 如果所有檔案皆可離線使用,您就可以在沒有網際網路連線的情況下進行安裝。
如需最新的 IoT Edge 安裝檔案及先前版本的相關資訊,請參閱 Azure IoT Edge 版本。
尋找您要安裝的版本,並從版本資訊的 [資產] 區段,將下列檔案下載到您的 IoT 裝置:
- IoTEdgeSecurityDaemon.ps1
- 1.1 發行通道中的 Microsoft-Azure-IoTEdge-amd64.cab。
請務必在與所用.cab 檔案相同的版本中使用 PowerShell 指令碼,因為功能性會變更為在每個版本中支援這些功能。
如果您下載的 .cab 檔案有結構尾碼,請將檔案重新命名為只有 Microsoft-Azure-IoTEdge.cab。
選擇性地下載 Visual C++ 可轉散發套件的安裝程式。 例如,PowerShell 指令碼會使用此版本:vc_redist.x64.exe。 將安裝程式儲存在 IoT 裝置上與 IoT Edge 檔案相同的資料夾中。
若要使用離線元件進行安裝,請對 PowerShell 指令碼的本機複本使用點溯源 (dot source)。
使用
-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 模組,以了解如何將模組部署至您的裝置。