教學課程:在IoT Edge上設定機器學習的環境
適用於: IoT Edge 1.1
這很重要
IoT Edge 1.1 終止支援日期為 2022 年 12 月 13 日。 如需此產品、服務、技術或 API 的支援資訊,請參閱 Microsoft 產品生命週期。 如需更新至最新版 IoT Edge 的詳細資訊,請參閱 更新 IoT Edge。
本文可協助您準備環境以進行開發和部署。 首先,將開發機器安裝好,並配置您需要的所有工具。 然後,在 Azure 中建立必要的雲端資源。
在本教學課程的本節中,您將瞭解如何:
- 設定虛擬機以進行開發。
- 請為您的開發環境設定 IoT 中樞和雲端儲存。
先決條件
本文是一系列關於在 IoT Edge 上使用 Azure Machine Learning 的教學課程的一部分。 本系列中的每個文章都是以上一篇文章中的工作為基礎。 如果您已直接抵達本文,請瀏覽本系列的第一篇文章 。
設定開發 VM
此步驟通常是由雲端開發人員執行。 某些軟體也可能對數據科學家有幫助。
我們已建立 PowerShell 腳本,以建立已設定許多必要條件的 Azure 虛擬機。 我們建立的 VM 必須能夠處理 巢狀虛擬化,這就是為什麼我們選擇 Standard_D8s_v3 機器大小的原因。
開發 VM 將會使用下列項目進行設定:
- Windows 10
- Chocolatey
- 適用於 Windows 的 Docker Desktop
- Windows 版 Git
- 適用於 Windows 的 Git 認證管理員
- .NET Core SDK
- Python 3
- Visual Studio Code
- Azure PowerShell
- VS Code 延伸模組
開發人員 VM 並非絕對必要,所有開發工具都可以在本機電腦上執行。 不過,我們強烈建議使用 VM 來確保一個公平的競爭領域。
建立和設定虛擬機大約需要30分鐘的時間。
將 Machine Learning 和 IoT Edge 範例存放庫複製或下載到本機電腦。
以系統管理員身分開啟 PowerShell,並流覽至您下載程式代碼根目錄底下的 \IoTEdgeAndMlSample\DevVM 目錄。 我們會將來源的根目錄稱為
srcdir
。cd c:\srcdir\IoTEdgeAndMlSample\DevVM
DevVM 目錄包含建立適合完成本教學課程的 Azure 虛擬機所需的檔案。
執行下列命令以允許執行腳本。 出現提示時,選擇 [[全部]。
Set-ExecutionPolicy Bypass -Scope Process
執行 Create-AzureDevVM.ps1。
.\Create-AzureDevVm.ps1
出現提示時,請提供下列資訊:
- Azure 訂用帳戶標識碼:您可以在入口網站 Azure 訂用帳戶 中找到您的訂用帳戶標識碼。
- 資源組名:Azure 中新或現有資源群組的名稱。
- 位置:選擇將建立虛擬機的 Azure 位置。 例如,「美國西部 2」或「北歐」。 如需詳細資訊,請參閱 Azure 位置。
- Username:為 VM 的系統管理員帳戶提供令人難忘的名稱。
- 密碼:為 VM 的系統管理員帳戶設定密碼。
腳本會執行數分鐘,以完成以下步驟:
- 安裝 Azure PowerShell Az 模組。
- 提示您登入 Azure。
- 確認建立 VM 的資訊。 按 y 或 Enter 以繼續。
- 如果資源群組不存在,則建立資源群組。
- 部署虛擬機。
- 在 VM 上啟用 Hyper-V。
- 安裝開發所需的軟體並複製範例存放庫。
- 重新啟動 VM。
- 在您的桌面上建立 RDP 檔案,以連線到 VM。
如果系統提示您輸入要重新啟動的 VM 的名稱,您可以從腳本輸出中複製其名稱。 輸出也會顯示連線到 VM 之 RDP 檔案的路徑。
設定自動關機排程
為了協助您降低成本,已使用設定為1900 PST的自動關機排程來建立開發VM。 視您的位置和排程而定,您可能需要更新此設定。 若要更新關機排程:
在 Azure 入口網站中,流覽至腳本建立的 VM。
從左窗格選單的 [作業] 底下,選取 [自動關機]。
視需要調整 排程關機 和 時區,然後選擇 儲存。
連接到開發 VM
既然我們已建立 VM,我們必須完成安裝完成教學課程所需的軟體。
雙擊腳本在桌面上建立的 RDP 檔案。
您會看到一個對話框,指出遠端連線的發行者未知。 這是可接受的,因此請選取 [Connect]。
提供您為建立 VM 所提供的系統管理員密碼,然後按一下 [確定] 。
系統會提示您接受 VM 的憑證。 選擇是。
安裝 Visual Studio Code 延伸模組
既然您已連線到開發計算機,請將一些有用的擴充功能新增至 Visual Studio Code,讓開發體驗更容易。
聯機到開發 VM、開啟 PowerShell 視窗,然後流覽至 C:\source\IoTEdgeAndMlSample\DevVM 目錄。 此目錄是由建立 VM 的腳本所建立。
cd C:\source\IoTEdgeAndMlSample\DevVM
執行下列命令以允許執行腳本。 出現提示時,選擇「全部是」。
Set-ExecutionPolicy Bypass -Scope Process
執行 Visual Studio Code 擴充功能腳本。
.\Enable-CodeExtensions.ps1
腳本將執行幾分鐘以安裝 VS Code 延伸模組:
- Azure IoT Edge
- Azure IoT 中樞
- Python(程式語言)
- C#
- Docker(用於開發、傳遞和運行應用程式的平台)
- PowerShell
設定IoT中樞和記憶體
這些步驟通常是由雲端開發人員執行。
Azure IoT 中樞是任何 IoT 應用程式的核心,因為它會處理 IoT 裝置與雲端之間的安全通訊。 這是IoT Edge機器學習解決方案作業的主要協調點。
IoT 中樞會使用路由,將傳入數據從IoT裝置導向至其他下游服務。 我們將利用IoT中樞路由,將裝置資料傳送至 Azure 記憶體。 在 Azure 儲存體中,Azure Machine Learning 會取用裝置數據來訓練我們的剩餘可用壽命 (RUL) 分類器。
稍後在本教學課程中,我們將使用IoT中樞來設定和管理 Azure IoT Edge 裝置。
在本節中,您會使用腳本來建立 Azure IoT 中樞和 Azure 記憶體帳戶。 然後在 Azure 入口網站中,設定路由,以將中樞所接收的數據轉送至 Azure 記憶體容器。 這些步驟需要大約 10 分鐘才能完成。
聯機到開發 VM、開啟 PowerShell 視窗,然後流覽至 IoTHub 目錄。
cd C:\source\IoTEdgeAndMlSample\IoTHub
執行建立腳本。 使用與建立開發 VM 時相同的訂用帳戶標識碼、位置和資源群組值。
.\New-HubAndStorage.ps1 -SubscriptionId <subscription id> -Location <location> -ResourceGroupName <resource group>
- 系統會提示您登入 Azure。
- 腳本會確認您建立中樞和儲存帳戶的資訊。 按 y 或 Enter 以繼續。
腳本需要大約兩分鐘的時間才能執行。 完成後,腳本會輸出IoT中樞的名稱和記憶體帳戶。
檢閱 IoT 中樞的儲存路徑
在建立IoT中樞時,我們在上一節中執行的腳本也會建立自定義端點和路由。 IoT 中樞路由是由查詢表達式和端點所組成。 如果訊息符合表達式,則會沿著路由傳送數據至相關聯的端點。 端點可以是事件中樞、服務總線佇列和主題。 在此情況下,端點是記憶體帳戶中的 Blob 容器。 讓我們使用 Azure 入口網站來檢閱腳本所建立的路由。
開啟 Azure 入口網站,然後移至您在本教學課程中所使用的資源群組。
在資源清單中,選取腳本所建立的IoT中樞。 名稱結尾為隨機字元,例如
IotEdgeAndMlHub-jrujej6de6i7w
。從左窗格功能表的 [中樞設定] 底下,選取 [訊息路由]。
在 [訊息路由] 頁面上,選取 [自訂端點] 索引標籤。
展開 [記憶體] 區段:
我們看到 turbofanDeviceStorage 位於自定義端點清單中。 請注意此端點的下列特性:
- 它將指向您所建立、名稱為
devicedata
的 Blob 儲存體容器,如 容器名稱所指示。 - 其 檔名格式 名稱中有 「partition」 這個字。 我們發現此格式更方便我們在本教學課程稍後使用 Azure Notebooks 的檔案作業。
- 其 狀態 應該狀況良好。
- 它將指向您所建立、名稱為
請選擇 路由 標籤。
選擇名為 turbofanDeviceDataToStorage的路由。
在 路由詳細數據 頁面上,請注意路由的端點是 turbofanDeviceStorage 端點。
檢視路由查詢 ,其設定為 true。 此設定表示所有裝置遙測訊息都會符合此路由;因此,所有訊息都會傳送至 turbofanDeviceStorage 端點。
由於未進行任何編輯,只要關閉此頁面即可。
清理資源
本教學課程是一組的一部分,其中每個文章都是以先前文章中完成的工作為基礎。 請等候清除任何資源,直到您完成最後一個教學課程為止。
後續步驟
在本文中,我們建立了IoT中樞,並設定了 Azure 記憶體帳戶的路由。 接下來,我們會透過IoT中樞將一組模擬裝置的數據傳送到記憶體帳戶。 稍後在本教學課程中,設定IoT Edge裝置和模組之後,我們將重新流覽路由,並進一步查看路由查詢。
繼續閱讀下一篇文章,以建立要監視的模擬裝置。