使用對稱金鑰大規模在 Windows 裝置上建立和布建適用於 Linux 的 IoT Edge
適用於: IoT Edge 1.4
重要
支援 IoT Edge 1.5 LTS 和 IoT Edge 1.4 版本。 IoT Edge 1.4 LTS 於 2024 年 11 月 12 日結束生命週期。 如果您是舊版,請參閱更新 IoT Edge。
本文說明如何使用對稱密鑰在 Windows 裝置上自動佈建一或多個適用於 Linux 的 IoT Edge。 您可以使用 Azure IoT 中樞 裝置布建服務 (DPS) 自動布建 Azure IoT Edge 裝置。 如果您不熟悉自動布建程式,請先檢閱 布建概觀 ,再繼續進行。
工作如下所示:
- 建立單一裝置的個別註冊或一組裝置的群組註冊。
- 部署已安裝IoT Edge運行時間的Linux虛擬機,並將其連線至 IoT 中樞。
對稱金鑰證明是使用裝置佈建服務實例驗證裝置的簡單方法。 對於不熟悉裝置佈建或沒有嚴格安全性需求的開發人員,這個證明方法代表 "Hello world" 經驗。 使用 TPM 或 X.509 憑證 的裝置證明更安全,而且應該用於更嚴格的安全性需求。
必要條件
雲端資源
- 作用中的IoT中樞
- Azure 中 IoT 中樞 裝置布建服務的實例,已連結至IoT中樞
- 如果您沒有裝置佈建服務實例,您可以依照建立新的 IoT 中樞 裝置布建服務和連結 IoT 中樞 裝置布建服務快速入門的IoT中樞和裝置布建服務小節中的指示操作。
- 執行裝置布建服務之後,請從 [概觀] 頁面複製 [標識符範圍] 的值。 當您設定 IoT Edge 執行時間時,請使用此值。
裝置需求
具有下列最低需求的 Windows 裝置:
系統需求
- Windows 101/11 (專業版、企業版、IoT 企業版)
- Windows Server 20191/2022
1 已安裝所有目前累積更新的 Windows 10 和 Windows Server 2019 最低組建 17763。
硬體需求
- 最小可用記憶體:1 GB
- 最小可用磁碟空間:10 GB
虛擬化支援
- 在 Windows 10 上,啟用 Hyper-V。 如需詳細資訊,請參閱 在 Windows 10 上安裝 Hyper-V。
- 在 Windows Server 上安裝 Hyper-V 角色,並建立預設網路交換器。 如需詳細資訊,請參閱 Windows 上適用於 Linux 的 Azure IoT Edge 巢狀虛擬化。
- 在虛擬機上,設定巢狀虛擬化。 如需詳細資訊,請參閱 巢狀虛擬化。
網路支援
- Windows Server 未隨附預設參數。 您必須先建立虛擬交換器,才能將 EFLOW 部署至 Windows Server 裝置。 如需詳細資訊,請參閱 在 Windows 上建立 Linux 的虛擬交換器。
- Windows 桌面版本隨附可用於 EFLOW 安裝的預設參數。 如有需要,您可以建立自己的自定義虛擬交換器。
提示
如果您想要在 Windows 部署上的適用於 Linux 的 Azure IoT Edge 中使用 GPU 加速的 Linux 模組 ,有幾個組態選項需要考慮。
您必須根據您的 GPU 架構安裝正確的驅動程式,而且您可能需要存取 Windows 測試人員計劃組建。 若要判斷您的設定需求並滿足這些必要條件,請參閱 Windows 上適用於 Linux 的 Azure IoT Edge GPU 加速。
請確定您花點時間滿足 GPU 加速的必要條件。 如果您決定要在安裝期間加速 GPU,則必須重新啟動安裝程式。
開發人員工具
準備您的目標裝置,以在 Windows 上安裝適用於 Linux 的 Azure IoT Edge,以及部署 Linux 虛擬機:
將目標裝置上的執行原則設定為
AllSigned
。 您可以使用下列命令,在提升權限的 PowerShell 提示字元中檢查目前的執行原則:Get-ExecutionPolicy -List
如果 的執行原則
local machine
不是AllSigned
,您可以使用下列項目來設定執行原則:Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
如需 Windows PowerShell 模組上適用於 Linux 的 Azure IoT Edge 模組的詳細資訊,請參閱 PowerShell 函式參考。
建立 DPS 註冊
建立註冊,以透過 DPS 布建一或多個裝置。
如果您想要布建單一 IoT Edge 裝置,請建立 個別註冊。 如果您需要布建多個裝置,請遵循建立 DPS 群組註冊的步驟。
當您在 DPS 中建立註冊時,有機會宣告初始裝置對應項 狀態。 在裝置對應項中,您可以透過解決方案中所需的任何計量,將標籤設定為群組裝置,例如區域、環境、位置或裝置類型。 這些標記可用來建立 自動部署。
如需裝置布建服務中註冊的詳細資訊,請參閱 如何管理裝置註冊。
建立 DPS 個別註冊
提示
本文中的步驟適用於 Azure 入口網站,但您也可以使用 Azure CLI 建立個別註冊。 如需詳細資訊,請參閱 az iot dps enrollment。 在 CLI 命令中,使用 已啟用邊緣的 旗標來指定註冊適用於 IoT Edge 裝置。
在 Azure 入口網站 中,流覽至 IoT 中樞 裝置布建服務的實例。
在 [設定] 下方,選取 [管理註冊]。
選取 [ 新增個別註冊 ],然後完成下列步驟來設定註冊:
針對 [ 機制],選取 [ 對稱密鑰]。
為您的裝置提供唯 一的註冊標識碼 。
或者,為裝置提供 IoT 中樞 裝置標識符。 您可以使用裝置識別碼,將個別裝置設為模組部署的目標。 如果您沒有提供裝置識別碼,則會使用註冊標識碼。
選取 [True ] 以宣告註冊適用於IoT Edge裝置。
或者,將標籤值新增至 初始裝置對應項狀態。 您可以使用標籤將裝置群組設為模組部署的目標群組。 例如:
{ "tags": { "environment": "test" }, "properties": { "desired": {} } }
選取 [儲存]。
複製個別註冊的主 鍵 值,以在安裝IoT Edge執行時間時使用。
現在,此裝置的註冊已存在,IoT Edge 運行時間可以在安裝期間自動布建裝置。
安裝IoT Edge
在目標裝置上的 Windows 上部署適用於 Linux 的 Azure IoT Edge。
注意
下列 PowerShell 程式概述如何在 Windows 上將適用於 Linux 的 IoT Edge 部署至本機裝置。 若要使用 PowerShell 部署至遠端目標裝置,您可以使用 遠端 PowerShell 來建立遠端裝置的連線,並在該裝置上遠端執行這些命令。
在提升許可權的 PowerShell 工作階段中,根據您的目標裝置架構執行下列其中一個命令,以在 Windows 上下載適用於 Linux 的 IoT Edge。
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
在裝置上的 Windows 上安裝適用於 Linux 的 IoT Edge。
Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn"
您可以在 Windows 安裝和 VHDX 目錄上指定適用於 Linux 的自定義 IoT Edge,方法是將 和
VHDXDIR="<FULLY_QUALIFIED_PATH>"
參數新增INSTALLDIR="<FULLY_QUALIFIED_PATH>"
至 install 命令。 例如,如果您想要使用 D:\EFLOW 資料夾進行安裝和 VHDX 的 D:\EFLOW-VHDX ,您可以使用下列 PowerShell Cmdlet。Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn","INSTALLDIR=D:\EFLOW", "VHDXDIR=D:\EFLOW-VHDX"
如果目標裝置尚未執行,請將目標裝置上的執行原則設定為
AllSigned
。 請參閱命令的 PowerShell 必要條件,以檢查目前的執行原則,並將執行原則設定為AllSigned
。在 Windows 部署上建立適用於 Linux 的 IoT Edge。 部署會建立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
如需所有可用選用參數的資訊,請參閱 Windows 上適用於 Linux 的 IoT Edge PowerShell 函式。
警告
根據預設,EFLOW Linux 虛擬機沒有 DNS 設定。 使用 DHCP 的部署會嘗試取得 DHCP 伺服器所傳播的 DNS 組態。 請檢查您的 DNS 設定,以確保因特網連線。 如需詳細資訊,請參閱 AzEFLOW-DNS。
您可以將 GPU 指派給部署,以啟用 GPU 加速的 Linux 模組。 若要取得這些功能的存取權,您必須在 Windows 上安裝適用於 Linux 的 Azure IoT Edge GPU 加速中詳述的必要條件。
若要使用 GPU 傳遞,請將 gpuName、gpuPassthroughType 和 gpuCount 參數新增至命令
Deploy-Eflow
。 如需所有可用選用參數的資訊,請參閱 Windows 上適用於 Linux 的 IoT Edge PowerShell 函式。警告
啟用硬體裝置傳遞可能會增加安全性風險。 如果適用,Microsoft 建議來自 GPU 廠商的裝置風險降低驅動程式。 如需詳細資訊,請參閱 使用離散裝置指派部署圖形裝置。
輸入 『Y』 以接受授權條款。
根據您的喜好設定,輸入 『O』 或 『R』 來切換 選擇性診斷數據 。
部署完成後,PowerShell 視窗會報告 [部署成功]。
部署成功之後,您就可以布建裝置。
使用雲端身分識別來佈建裝置
在裝置上安裝運行時間之後,請使用用來連線到裝置布建服務和 IoT 中樞的信息來設定裝置。
備妥下列資訊:
- DPS 識別碼範圍 值
- 您所建立的裝置註冊標識碼
- 個別註冊的主要金鑰,或使用群組註冊的裝置衍生密鑰。
在提升許可權的 PowerShell 工作階段中執行下列命令,並使用您自己的值更新佔位元值:
Provision-EflowVm -provisioningType DpsSymmetricKey -scopeId PASTE_YOUR_ID_SCOPE_HERE -registrationId PASTE_YOUR_REGISTRATION_ID_HERE -symmKey PASTE_YOUR_PRIMARY_KEY_OR_DERIVED_KEY_HERE
確認安裝成功
確認 Windows 上的適用於 Linux 的 IoT Edge 已成功在 IoT Edge 裝置上安裝和設定。
您可以確認已使用您在裝置布建服務中建立的個別註冊。 流覽至 Azure 入口網站 中的裝置布建服務實例。 開啟您所建立之個別註冊的註冊詳細數據。 請注意,已指派註冊狀態,並列出裝置標識碼。
在 PowerShell 會話中使用下列命令登入 Windows 虛擬機上的適用於 Linux 的 IoT Edge:
Connect-EflowVm
注意
唯一允許透過 SSH 連線到虛擬機的帳戶是建立虛擬機的使用者。
登入之後,您可以使用下列 Linux 命令來檢查執行 IoT Edge 模組的清單:
sudo iotedge list
如果您需要針對IoT Edge服務進行疑難解答,請使用下列Linux命令。
擷取服務記錄。
sudo iotedge system logs
使用 工具來
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
。 此狀態正常,表示裝置已準備好接收模組部署。
在 Windows 上卸載適用於 Linux 的 IoT Edge
如果您想要從裝置移除適用於 Linux 的 Azure IoT Edge,請使用下列命令。
- 在 Windows 上開啟 設定
- 選取[新增或移除程式]
- 選取 Azure IoT Edge 應用程式
- 選取 [卸載]
下一步
裝置布建服務註冊程式可讓您在布建新裝置的同時,設定裝置標識碼和裝置對應項標籤。 您可以使用這些值,以使用自動裝置管理,以個別裝置或裝置群組為目標。 瞭解如何使用 Azure 入口網站 或使用 Azure CLI 大規模部署和監視 IoT Edge 模組。
您也可以:
- 繼續 部署IoT Edge模組 ,以瞭解如何將模組部署至您的裝置。
- 瞭解如何 在 Windows 虛擬機 上管理適用於 Linux 的 IoT Edge 憑證,並將檔案從主機 OS 傳輸到 Linux 虛擬機。
- 瞭解如何設定 IoT Edge裝置,以透過 Proxy 伺服器進行通訊。