Share via


教學課程:在 IoT Edge 上為機器學習設定環境

適用於:yes 圖示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 將會搭配下列項目進行設定:

開發人員 VM 並非絕對必要 -所有開發工具都可以在本機電腦上執行。 不過,我們強烈建議您使用 VM 來確保環境能保持一致。

建立及設定虛擬機器只需要大約 30 分鐘的時間。

  1. 機器學習和 IoT Edge 範例存放庫複製或下載到您的本機電腦。

  2. 以系統管理員身分開啟 PowerShell,並瀏覽至您下載程式碼的根目錄下包含的 \IoTEdgeAndMlSample\DevVM 目錄。 我們會將來源的根目錄稱為 srcdir

    cd c:\srcdir\IoTEdgeAndMlSample\DevVM
    

    DevVM 目錄包含建立適合完成此教學課程之 Azure 虛擬機器的所需檔案。

  3. 執行下列命令來允許執行指令碼。 出現提示時,請選擇 [全部皆是]

    Set-ExecutionPolicy Bypass -Scope Process
    
  4. 執行 Create-AzureDevVM.ps1。

    .\Create-AzureDevVm.ps1
    

    出現提示時,請提供下列資訊:

    • Azure 訂用帳戶識別碼:您的訂用帳戶識別碼 (可在入口網站中的 Azure 訂用帳戶內找到)。
    • 資源群組名稱:Azure 中新的或現有資源群組的名稱。
    • 位置:選擇要建立虛擬機器的 Azure 位置。 例如,「美國西部 2」或「北歐」。 如需詳細資訊,請參閱 Azure 的地點
    • 使用者名稱:為 VM 的系統管理員帳戶提供易記的名稱。
    • 密碼:設定 VM 系統管理員帳戶的密碼。

    指令碼會執行下列步驟,這需要花費數分鐘的時間:

    1. 安裝 Azure PowerShell Az 模組
    2. 提示您登入 Azure。
    3. 確認建立 VM 的資訊。 按 yEnter 鍵以繼續作業。
    4. 建立資源群組 (若尚不存在)。
    5. 部署虛擬機器。
    6. 在 VM 上啟用 Hyper-V。
    7. 安裝開發及複製範例存放庫所需的軟體。
    8. 重新啟動 VM。
    9. 在桌面上建立 RDP 檔案以連線至 VM。

    如果系統提示您輸入 VM 的名稱以重新啟動 VM,您可以從指令碼輸出中複製其名稱。 輸出也會顯示用來連線至 VM 的 RDP 檔案路徑。

設定自動關機排程

為了協助您降低成本,在建立開發 VM 時,自動關機排程設定為 1900 PST。 您可能需要根據所在位置和排程更新此設定。 更新關機排程:

  1. 在 Azure 入口網站中,瀏覽至指令碼所建立的 VM。

  2. 從左窗格功能表的 [作業] 底下,選取 [自動關機]

  3. 視需要調整 [已排程關機] 和 [時區],然後選取 [儲存]

連線至開發 VM

在建立好 VM 之後,我們現在必須安裝完成此教學課程所需的軟體。

  1. 按兩下指令碼在桌面上建立的 RDP 檔案。

  2. 系統會顯示對話方塊,說明遠端連線的發行者為未知的發行者。 這是可接受的情況,因此請選取 [連線]

  3. 提供您輸入用來建立 VM 的系統管理員密碼,然後按一下 [確定]

  4. 系統會提示您接受 VM 的憑證。 選取 [是]。

安裝 Visual Studio Code 延伸模組

在您連線至開發電腦之後,請為 Visual Studio Code 加入一些有用的擴充,來使開發體驗變得更加輕鬆。

  1. 連線至開發 VM,開啟 PowerShell 視窗,然後瀏覽至 C:\source\IoTEdgeAndMlSample\DevVM 目錄。 此目錄是由建立 VM 的指令碼所建立的。

    cd C:\source\IoTEdgeAndMlSample\DevVM
    
  2. 執行下列命令來允許執行指令碼。 出現提示時,請選擇 [全部皆是]

    Set-ExecutionPolicy Bypass -Scope Process
    
  3. 執行 Visual Studio Code 擴充功能指令碼。

    .\Enable-CodeExtensions.ps1
    
  4. 指令碼將會執行幾分鐘的時間來安裝 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 分鐘來完成。

  1. 連線至開發 VM,開啟 PowerShell 視窗,然後瀏覽至 IoTHub 目錄。

    cd C:\source\IoTEdgeAndMlSample\IoTHub
    
  2. 執行建立指令碼。 使用和您在建立開發 VM 時相同的值來設定訂用帳戶識別碼、位置及資源群組。

    .\New-HubAndStorage.ps1 -SubscriptionId <subscription id> -Location <location> -ResourceGroupName <resource group>
    
    • 系統將提示您登入 Azure。
    • 指令碼會確認建立中樞和儲存體帳戶的資訊。 按 yEnter 鍵以繼續作業。

執行指令碼約需兩分鐘。 完成後,指令碼會輸出 IoT 中樞和儲存體帳戶的名稱。

檢閱針對 IoT 中樞中儲存體的路由

作為建立 IoT 中樞的一部分,我們在上一節中所執行的指令碼也已建立自訂端點和路由。 IoT 中樞路由包含查詢運算式和端點。 如果訊息符合運算式,資料便會沿著路由被傳送至相關聯的端點。 端點可以是事件中樞、服務匯流排佇列及主題。 在此案例中,端點是儲存體帳戶中的 Blob 容器。 我們將使用 Azure 入口網站來檢閱由指令碼所建立的路由。

  1. 開啟 Azure 入口網站,並移至您將在本教學課程中使用的資源群組。

  2. 在資源清單中,選取指令碼所建立的 IoT 中樞。 其名稱會以隨機字元結尾,例如 IotEdgeAndMlHub-jrujej6de6i7w

  3. 從左窗格功能表的 [ 中樞設定] 底下,選取 [ 訊息路由]。

  4. 在 [訊息路由] 頁面上,選取 [自訂端點] 索引標籤。

  5. 展開 [儲存體] 區段:

    I o T Hub 入口網站中自訂端點清單中名為 turbofanDeviceStorage 的儲存體螢幕擷取畫面。

    我們看到 turbofanDeviceStorage 位於自訂端點清單中。 請留意此端點具有下列特性:

    • 它會指向您所建立的 Blob 儲存體容器 (其名稱為 devicedata,如容器名稱所示)。
    • 檔案名格式 的名稱中有 「partition」 這個字。 我們在本教學課程稍後會使用 Azure Notebooks 來執行的檔案作業,發現此格式更方便。
    • 其 [狀態] 應該是良好。
  6. 選取 [路由] 索引標籤。

  7. 選取名為 turbofanDeviceDataToStorage 的路由。

  8. 在 [路由詳細資料] 頁面上您可以看到,路由的端點是 turbofanDeviceStorage 端點。

    顯示 turbofanDeviceDataToStorage 路由詳細資料的螢幕擷取畫面。

  9. 查看路由查詢,其已設定為 true。 此設定表示所有裝置遙測訊息都將符合此路由,這會使所有訊息都傳送至 turbofanDeviceStorage 端點。

  10. 由於未進行任何編輯,請關閉此頁面即可。

清除資源

本教學課程是集合的一部分,其中每篇文章都會以上一篇文章中所完成的工作為基礎。 請等到您完成最後一個教學課程後,再清除任何資源。

後續步驟

在此文章中,我們已建立 IoT 中樞,並設定針對 Azure 儲存體帳戶的路由。 接下來,我們將會透過 IoT 中樞將來自一組模擬裝置的資料傳送至儲存體帳戶。 稍後在教學課程中,當我們已設定 IoT Edge 裝置和模組之後,我們將會重新造訪路由,並進一步查看路由查詢。

請前往下一篇文章以建立模擬裝置以進行監視。