快速入門:將您的第一個 IoT Edge 模組部署到 Windows 裝置
適用於: IoT Edge 1.5
IoT Edge 1.4
重要
IoT Edge 1.5 LTS 和 IoT Edge 1.4 LTS 為支援的版本。 IoT Edge 1.4 LTS 於 2024 年 11 月 12 日結束生命週期。 如果您是舊版,請參閱更新 IoT Edge。
藉由將容器化程式碼部署至 Linux on Windows IoT Edge 裝置,在本快速入門中試用 Azure IoT Edge。 IoT Edge 可讓您從遠端管理裝置上的程式碼,以便可以將更多的工作負載傳送到邊緣。 在本快速入門中,建議您使用自己的 Windows 用戶端裝置,藉此了解使用 Azure IoT Edge for Linux on Windows 有多麼容易。 如果您要使用 Windows Server 或 Azure VM 以建立部署,請遵循安裝和佈建 Azure IoT Edge for Linux on Windows 裝置上操作說明的步驟。
在本快速入門中,您將了解如何:
- 建立 IoT 中樞。
- 向 IoT 中樞註冊 IoT Edge 裝置。
- 在裝置上安裝和啟動 IoT Edge for Linux on Windows 執行階段。
- 將模組從遠端部署至 IoT Edge 裝置,並傳送遙測。
本快速入門逐步引導您如何設定 Azure IoT Edge for Linux on Windows 裝置。 接著,您可以從 Azure 入口網站將模組部署至裝置。 您將使用的模組是一個模擬感應器,會產生溫度、溼度和壓力資料。 其他 Azure IoT Edge 教學課程會以您在此所做的工作為基礎,透過部署模組來分析模擬資料以產生商業見解。
如果您沒有使用中的 Azure 訂用帳戶,請在開始前建立免費帳戶。
必要條件
備妥環境以使用 Azure CLI。
在 Azure Cloud Shell 中使用 Bash 環境。 如需詳細資訊,請參閱 Azure Cloud Shell 中的 Bash 快速入門。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱〈如何在 Docker 容器中執行 Azure CLI〉。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱使用 Azure CLI 登入。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能詳細資訊,請參閱使用 Azure CLI 擴充功能。
執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
建立雲端資源群組,以管理本快速入門中使用的所有資源。
az group create --name IoTEdgeResources --location westus2
請確定 IoT Edge 裝置符合下列需求:
系統需求
- Windows 101/11 (Pro、Enterprise、IoT Enterprise) 1 Windows 10 最低組建 17763,且安裝目前累積的所有更新。
硬體需求
- 最小可用記憶體:1 GB
- 最少可用磁碟空間:10 GB
建立 IoT 中樞
使用 Azure CLI 建立 IoT 中樞以開始進行。
Azure IoT 中樞的免費層級適用於此快速入門。 如果您在過去已使用過 IoT 中樞,並已建立中樞,您可以使用該 IoT 中樞。
下列程式碼會在資源群組 IoTEdgeResources
中建立免費的 F1 中樞。 以 IoT 中樞的唯一名稱來取代 {hub_name}
。 建立 IoT 中樞可能需要幾分鐘的時間。
az iot hub create --resource-group IoTEdgeResources --name {hub_name} --sku F1 --partition-count 2
如果因您的訂用帳戶中已有一個免費中樞而發生錯誤,請將 SKU 變更為 S1
。 如果您收到無法使用 IoT 中樞名稱的錯誤,則其他人已經有該名稱的中樞。 請嘗試使用新名稱。
註冊 IoT Edge 裝置
向新建立的 IoT 中樞註冊 IoT Edge 裝置。
建立模擬裝置的裝置身分識別,以便與 IoT 中樞通訊。 裝置身分識別存在於雲端,您可以使用唯一裝置連接字串來建立實體裝置與裝置身分識別的關聯。
IoT Edge 裝置的行為和管理方式可能與一般 IoT 裝置不同。 使用 --edge-enabled
旗標以宣告此身分識別屬於 IoT Edge 裝置。
在 Azure Cloud Shell 中輸入下列命令,以在中樞內建立名為 myEdgeDevice 的裝置。
az iot hub device-identity create --device-id myEdgeDevice --edge-enabled --hub-name {hub_name}
如果您收到有關
iothubowner
原則金鑰的錯誤,請確定 Cloud Shell 正在執行最新版的 Azure IoT 擴充功能。檢視裝置的連接字串 (此字串會連結實體裝置與其在 IoT 中樞的身分識別)。 其包含 IoT 中樞的名稱、您的裝置名稱,以及用來驗證兩者間連線的共用金鑰。
az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name {hub_name}
從 JSON 輸出複製
connectionString
金鑰值並加以儲存。 此值是裝置連接字串。 您將在下一節中使用此內容以設定 IoT Edge 執行階段。例如,您的連接字串看起來應該類似於
HostName=contoso-hub.azure-devices.net;DeviceId=myEdgeDevice;SharedAccessKey=<DEVICE_SHARED_ACCESS_KEY>
。
安裝並啟動 IoT Edge 執行階段
在裝置上安裝 IoT Edge for Linux on Windows,並使用裝置連接字串進行設定。
在想要部署 Azure IoT Edge for Linux on Windows 的目標裝置上執行下列 PowerShell 命令。 若要使用 PowerShell 部署至遠端目標裝置,請使用遠端 PowerShell 建立遠端裝置的連線,並在該裝置上遠端執行這些命令。
在已提高權限的 PowerShell 工作階段執行下列命令以啟用 Hyper-V。 如需詳細資訊,請參閱 Windows 10 上的 Hyper-V。
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
在提升權限的 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
在您的裝置上安裝 IoT Edge for Linux on Windows。
Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn"
如果尚未執行,請將目標裝置上的執行原則設定為
AllSigned
。 您可以使用下列命令,在提升權限的 PowerShell 提示字元中檢查目前的執行原則:Get-ExecutionPolicy -List
如果
local machine
的執行原則不是AllSigned
,則您可以使用下列項目來設定執行原則:Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
建立 IoT Edge for Linux on Windows 部署。
Deploy-Eflow
輸入「Y」以接受授權條款。
請根據您的喜好設定,輸入「O」或「R」來切換 [選擇性診斷資料] 開啟或關閉。 成功的部署如下圖所示。
使用您在上一節中擷取的裝置連接字串以佈建裝置。 以您自己的值取代預留位置文字。
Provision-EflowVm -provisioningType ManualConnectionString -devConnString "<CONNECTION_STRING_HERE>"
IoT Edge 裝置現已設定完成。 其已準備好執行雲端部署的模組。
部署模組
從雲端管理您的 Azure IoT Edge 裝置,以部署會將遙測資料傳送到 IoT 中樞的模組。
Azure IoT Edge 的主要功能之一,是將程式碼從雲端部署至 IoT Edge 裝置。 IoT Edge 模組是實作為容器的可執行檔套件。 在本節中,您將從 Microsoft 成品登錄的 IoT Edge 模組區段中部署預先建置的模組。
您在本節中部署的模組會模擬感應器,並傳送產生的資料。 當您開始使用 IoT Edge 時,此模組會是很有用的一組程式碼,因為您可以使用模擬的資料進行開發和測試。 如果您想要清楚檢視此模組的運作情形,您可以檢視模擬溫度感應器的原始程式碼。
請遵循下列步驟以部署第一個模組。
登入 Azure 入口網站,並移至您的 IoT 中樞。
從左側功能表,選取 [裝置管理] 功能表下的 [裝置]。
從裝置清單中選取目標裝置的裝置識別碼。
注意
當您建立新的 IoT Edge 裝置時,其會在 Azure 入口網站中顯示狀態碼
417 -- The device's deployment configuration is not set
。 此狀態為正常,表示裝置已就緒可接收模組部署。在上方列中,選取 [設定模組]。
選擇您要在裝置上執行的模組。 您可以選擇已建立的模組、來自 Microsoft 成品登錄的模組,或您自己建置的模組。 在本快速入門中,您將部署來自 Microsoft 成品登錄的模組。
在 [IoT Edge 模組] 區段中,選取 [新增],然後選擇 [IoT Edge Module 模組]。
更新下列模組設定:
設定 值 IoT 模組名稱 SimulatedTemperatureSensor
映像 URI mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:latest
重新啟動原則 always 需要的狀態 執行中 選取 [下一步:路由] 以繼續設定路由。
新增路由,以將所有訊息從模擬的溫度模組傳送到 IoT 中樞。
設定 值 名稱 SimulatedTemperatureSensorToIoTHub
值 FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstream
完成時,選取 [下一步:檢閱 + 建立]。
檢閱 JSON 檔案,然後選取 [建立]。 JSON 檔案會定義部署至 IoT Edge 裝置的所有模組。
注意
當將新的部署提交至 IoT Edge 裝置時,不會有任何項目推送至裝置。 此時,裝置會定期查詢 IoT 中樞以取得新的指示。 裝置在發現更新的部署資訊清單時,即會使用新部署的相關資訊從雲端提取模組映像,然後開始在本機執行模組。 此程序可能需要幾分鐘的時間。
在您建立模組部署詳細資料之後,精靈會讓您回到裝置詳細資料頁面。 在 [模組] 索引標籤上檢視部署狀態。
您應看到三個模組:$edgeAgent、$edgeHub 和 SimulatedTemperatureSensor。 如果一或多個模組的 [已在部署中指定] 下顯示 [是],但在 [由裝置回報] 下未顯示,則您的 IoT Edge 裝置仍在啟動這些模組。 等待幾分鐘,然後重新整理頁面。
如果您在部署模組時遇到問題,請參閱從 Azure 入口網站針對 IoT Edge 裝置進行疑難排解 (部分機器翻譯)。
檢視所產生的資料
在此快速入門中,您可以建立新的 IoT Edge 裝置,並在其中安裝 IoT Edge 執行階段。 然後,您已使用 Azure 入口網站來部署 IoT Edge 模組,使其無須變更裝置本身就能在裝置上執行。
您推送的模組會產生可用於稍後測試的環境資料範例。 模擬感應器會同時監視機器本身和機器的周邊環境。 例如,此感應器可能位於伺服器機房中、廠房中或風力發電機上。 感應器傳送的訊息包含周圍溫度和溼度、機器溫度和壓力,以及時間戳記。 IoT Edge 教學課程會使用此模組所建立的資料作為分析的測試資料。
使用 PowerShell 工作階段中的下列命令,登入到 IoT Edge for Linux on Windows 虛擬機器:
Connect-EflowVm
注意
唯一允許透過 SSH 連線至虛擬機器的帳戶,是建立虛擬機器的使用者。
登入之後,您可以使用下列 Linux 命令來檢查執行 IoT Edge 模組的清單:
sudo iotedge list
使用下列 Linux 命令以檢視從溫度感應器模組傳送至雲端的訊息:
sudo iotedge logs SimulatedTemperatureSensor -f
提示
IoT Edge 命令在在參考模組名稱時會區分大小寫。
清除資源
如果您想要繼續 IoT Edge 教學課程,請略過此步驟。 您可以使用在本快速入門註冊並設定的裝置。 否則,您可以刪除您建立的 Azure 資源,以避免產生費用。
如果您是在新的資源群組中建立虛擬機器和 IoT 中樞,您可以刪除該群組和所有相關聯的資源。 如果您不想刪除整個群組,可改為刪除個別資源。
重要
檢查資源群組的內容,確定沒有您想要保留的內容。 刪除資源群組是無法回復的動作。
使用下列命令以移除 IoTEdgeResources 群組。 刪除可能需要幾分鐘的時間。
az group delete --name IoTEdgeResources
您可以使用此命令以檢視資源群組清單來確認已移除資源群組。
az group list
解除安裝 IoT Edge for Linux on Windows
如果您想要從裝置中移除 Azure IoT Edge for Linux on Windows,則請使用下列命令。
- 開啟 Windows 上的 [設定]
- 選取 [新增或移除程式]
- 選取 [Azure IoT Edge] 應用程式
- 選取 [解除安裝]
下一步
在本快速入門中,您已建立 IoT Edge 裝置,並使用 Azure IoT Edge 雲端介面將程式碼部署至裝置上。 現在,您已有測試裝置,可產生其環境的相關原始資料。
在下一個教學課程中,您將了解如何從 Azure 入口網站監視裝置的活動和健康情況。