使用對稱密鑰在 Windows 上建立和布建 IoT Edge 裝置
適用於: IoT Edge 1.1
重要
IoT Edge 1.1 終止支援日期為 2022 年 12 月 13 日。 如需此產品、服務、技術或 API 的支援資訊,請參閱 Microsoft 產品生命週期。 如需更新至最新版IoT Edge的詳細資訊,請參閱 更新IoT Edge。
本文提供註冊和布建 Windows IoT Edge 裝置的端對端指示。
注意
從 Azure IoT Edge 1.2 版開始,不支援使用 Windows 容器的 Azure IoT Edge。
請考慮使用新的方法來在 Windows 裝置上執行 IoT Edge、 Windows 上的 Azure IoT Edge for Linux。
如果您想要在 Windows 上使用適用於 Linux 的 Azure IoT Edge,您可以遵循對等操作指南中的步驟。
連線到 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。
使用 PowerShell 的 AMD64 工作階段,而不是 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檔案上有架構後綴,請將檔案重新命名為 just Microsoft-Azure-IoTEdge.cab。
選擇性地下載 Visual C++ 可轉散發套件的安裝程式。 例如,PowerShell 腳本會使用此版本: vc_redist.x64.exe。 將安裝程式儲存在IoT裝置上與IoT Edge檔案相同的資料夾中。
若要使用脫機組件進行安裝, 請點來源 PowerShell 腳本的本機複本。
使用
-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 模組,以了解如何將模組部署至您的裝置。