練習 - 實作 IoT 遙測的處理
本練習概述如何使用 Azure IoT Central 應用程式,來設定規則和匯出 IoT 遙測資料。 如需詳細資訊,請參閱
在本練習中,您將會:
- 建立可記錄 HTTP 要求承載的 Azure 函式。
- 設定並驗證 Azure IoT Central 應用程式的 IoT 遙測規則。
- 建立將儲存 IoT 遙測的 Azure 儲存體帳戶。
- 設定並驗證 Azure IoT Central 應用程式的資料匯出。
必要條件
- Azure 訂用帳戶
- Microsoft 帳戶或 Microsoft Entra 帳戶,這在與 Azure 訂用帳戶相關聯的 Microsoft Entra 租用戶中具有全域管理員角色,而在 Azure 訂用帳戶中具有擁有者或參與者角色
- 完成練習單元設定 Azure IoT Central
建立可記錄 HTTP 要求承載的 Azure 函式
在設定 Azure IoT Central 應用程式規則之前,您將建立可協助驗證規則處理的 Azure 函數應用程式。 在實作雲端原生應用程式時,您可以輕鬆地將 Azure 函數應用程式取代為任何其他支援 HTTP Webhook 功能的元件。
在網頁瀏覽器中,瀏覽至 Azure 入口網站並登入,以存取您將在本課程模組中使用的 Azure 訂用帳戶。
使用 Azure 入口網站頁面開頭的 [搜尋資源、服務及文件] 方塊,以搜尋並選取 [函數應用程式]。
在 [函數應用程式] 窗格上,選取 [+ 新增] 或 [+ 建立]。
在 [建立函數應用程式] 窗格的 [基本] 索引標籤上,進行下列設定,然後選取 [檢閱 + 建立]:
設定 組態 訂用帳戶 選取您將在本課程模組中使用的 Azure 訂用帳戶名稱。 資源群組 建立新的資源群組,名為 iot-central-apps-RG。 函數應用程式名稱 輸入由小寫字母、數字或連字號組成的唯一名稱,並以字母開頭。 發行 選取 [程式碼]。 執行階段堆疊 選取 .NET。 版本 選取 3.1。 區域 選取最接近您實驗室環境位置的 Azure 區域,最好符合您的 Azure IoT Central 部署位置。 作業系統 Windows 方案類型 使用量 (無伺服器) 選取建立。
注意
等候 Azure 函數應用程式佈建完成。 這可能需要最多兩分鐘的時間。
在顯示 Azure 入口網站與 Azure 函數應用程式佈建狀態窗格的瀏覽器視窗中,選取 [移至資源]。
在 Azure 函數應用程式窗格上,選取 [函式],然後選取 [+ 建立]。
在 [建立函式] 窗格上,選取 [HTTP 觸發程序] 範本項目,然後選取 [建立]。 如果出現提示,請接受 HTTP 觸發程序範本的預設值。
在 [HttpTrigger1] 窗格上,於垂直功能表列中選取 [編碼 + 測試]。
在 [HttpTrigger1 | 編碼 + 測試] 窗格上,以下列內容取代現有的程式碼,然後選取 [儲存] 以儲存您的變更:
#r "Newtonsoft.Json" using System.Net; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Primitives; using Newtonsoft.Json; public static async Task<IActionResult> Run(HttpRequest req, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request."); string requestBody = await new StreamReader(req.Body).ReadToEndAsync(); dynamic data = JsonConvert.DeserializeObject(requestBody); string responseMessage = $"Payload: {data}. \nThis HTTP triggered function executed successfully."; log.LogInformation(responseMessage); return new OkObjectResult(responseMessage); }
注意
此函式會記錄 HTTP 要求的承載,此承載應該代表轉送到函數應用程式端點的遙測資料,而此轉送是透過您在本課程模組上一個練習中建立的 Azure IoT Central 應用程式進行。
在 [HttpTrigger1 | 編碼 + 測試] 窗格上,選取 [取得函式 URL],然後記錄 Azure 函式 URL 的值。
若要測試新建立的函式,請在 [HttpTrigger1 | 編碼 + 測試] 窗格上,選取 [測試/執行]。 選取 [輸入] 索引標籤,然後選取 [執行]。
若要驗證結果,請在 [HttpTrigger1 | 編碼 + 測試] 窗格上,檢閱記錄窗格,並驗證承載資料是否符合 [輸出] 索引標籤上所顯示的資料。
注意
您可能必須再次選取 [執行],才能在記錄窗格中產生結果。
設定並驗證 Azure IoT Central 應用程式的 IoT 遙測規則
如果出現提示,請登入以存取您在練習單元設定 Azure IoT Central 中所使用的 Azure 訂用帳戶。
在 [我的應用程式] 頁面上,選取 [adatum-iot-custom-application] 項目。
在垂直功能表中的 [擴充] 下,選取 [規則]。
在 [規則] 頁面上,選取 [建立規則],然後進行下列設定:
設定 組態 規則名稱 輸入 Adatum IoT 自訂應用程式測試規則。 裝置範本 選取 [Raspberry Pi]。 時間彙總 將其 [開啟],時間間隔值設定為 [5 分鐘]。 遙測 選取 [濕度]。 運算子 選取 [大於]。 彙總 選取 [平均]。 輸入值 輸入 30。 動作 選取 [+ Webhook]。 顯示名稱 輸入 Azure 函式 Webhook。 回撥 URL 貼上您在本練習上一個工作中記錄的 Azure 函式 URL 值。 注意
濕度遙測值是刻意人為降低,以叫用 Webhook 功能並觸發函式。 在真實情節中,您會將其調整為對應到保證引發警示或採取補救動作的條件。
在 [規則] 頁面上,選取 [完成],然後選取 [儲存]。
切換至瀏覽器視窗,其中顯示您在本課程模組上一個練習中所使用的 [Raspberry Pi Azure IoT 線上模擬器] 頁面。 在此頁面上,驗證模擬裝置是否正在將訊息傳送至 Azure IoT Central 應用程式。 如果模擬器已停止,請直接在程式碼窗格後面選取 [執行]。
切換回顯示 Azure 入口網站中 [HttpTrigger1 | 編碼 + 測試] 窗格的網頁瀏覽器視窗。 在垂直功能表中,選取 [監視] 項目,然後在 [HttpTrigger1 | 編碼 + 測試] 窗格上,選取 [記錄] 索引標籤。
驗證 [記錄] 窗格是否顯示為了回應 HTTP 觸發程序而產生的訊息,此觸發程序源自您稍早在此工作中所設定的 Azure IoT Central 應用程式 Webhook。
建立將儲存 IoT 遙測的 Azure 儲存體帳戶
切換至顯示 Azure 入口網站的網頁瀏覽器視窗。
在 Azure 入口網站中,使用 [搜尋資源、服務和文件] 文字方塊來搜尋並選取 [儲存體帳戶]。
在 [儲存體帳戶] 窗格上,選取 [+ 新增] 或 [+ 建立]。
在 [建立儲存體帳戶] 窗格的 [基本] 索引標籤上,進行下列設定 (將其他設定保留為預設值):
設定 組態 訂用帳戶 選取您將在本課程模組中使用的 Azure 訂用帳戶名稱。 資源群組 選取 iot-central-apps-RG。 儲存體帳戶名稱 輸入包含 3 到 24 個小寫字母和數字的唯一名稱,並以字母開頭。 效能 選取 [標準]。 備援性 選取 [本地備援儲存體 (LRS)] 在 [建立儲存體帳戶] 窗格的 [基本] 索引標籤上,選取 [檢閱 + 建立],然後選取 [建立]。
注意
等候 Azure 儲存體帳戶佈建完成。 這可能需要大約兩分鐘的時間。
當新的帳戶佈建完成時,選取 [前往資源]。
在 [Azure 儲存體帳戶] 窗格的垂直功能表中,選取 [容器],然後選取 [+容器]。
在 [新增容器] 窗格的 [名稱] 文字方塊中,輸入 iotcontainer、將 [公用存取層級] 的設定保留為 [私人 (沒有匿名存取)],然後選取 [ 建立]。
在 [Azure 儲存體帳戶] 窗格的垂直功能表中,於 [安全性 + 網路] 區段中選取 [存取金鑰]。 選取 [顯示金鑰],然後記錄對應至 key1 的連接字串值。
設定並驗證 Azure IoT Central 應用程式的資料匯出
切換至顯示 IoT Central 應用程式入口網站中 [adatum-iot-custom-application] 頁面的網頁瀏覽器視窗。
在 IoT Central 應用程式入口網站的 [adatum-iot-custom-application] 頁面上,於垂直功能表的 [擴充] 區段中選取 [資料匯出],然後選取 [新增匯出]。
在 [建立新的匯出] 頁面上,設定下列設定:
設定 組態 匯出名稱 輸入 Adatum IoT custom app export。 要匯出的資料類型 選取 [遙測]。 目的地 選取 [建立新的]。 新的目的地名稱 輸入 Adatum Blob Storage。 目的地類型 選取 Azure Blob 儲存體。 Connection string 貼上您在本練習上一個工作中複製的連接字串值。 容器 輸入 iotcontainer。 選取 [建立],然後在 [建立新的匯出] 頁面上選取 [儲存]。
切換至瀏覽器視窗,其中顯示您稍早在本練習中使用的 [Raspberry Pi Azure IoT 線上模擬器] 頁面。 在此頁面上,直接在程式碼窗格後面選取 [執行],並驗證模擬裝置是否正在將訊息傳送至 Azure IoT Central 應用程式。
切換至瀏覽器視窗,其中顯示 Azure 入口網站中的 [Azure 儲存體帳戶] 窗格。
在 [Azure 儲存體帳戶] 窗格的垂直功能表中,選取 [容器]。
在容器清單中,選取 [iotcontainer] 項目。
在 [iotcontainer] 窗格上,驗證具有 GUID 型名稱的新資料夾是否存在。
注意
如果資料夾不存在,請等候大約一分鐘,然後選取 [重新整理]。
在 [iotcontainer] 窗格上,選取新產生的資料夾,並瀏覽其子資料夾,直到您到達其任何子資料夾中的 Blob 為止。
在 [iotcontainer] 窗格上,選取您在上一個步驟中識別的 Blob。 在 [Blob] 窗格中,選取 [編輯] 索引標籤以顯示其內容。
切換至顯示 [Raspberry Pi Azure IoT 線上模擬器] 頁面的瀏覽器視窗。 在此頁面上,直接在程式碼窗格後面選取 [停止],並驗證模擬裝置是否不再將訊息傳送至 Azure IoT Central 應用程式。
結果
恭喜! 您已完成本課程模組的第二個練習。 在此練習中,您:
- 已建立可記錄 HTTP 要求承載的 Azure 函式。
- 已設定並驗證 Azure IoT Central 應用程式的 IoT 遙測規則。
- 已建立將儲存 IoT 遙測的 Azure 儲存體帳戶。
- 已設定並驗證 Azure IoT Central 應用程式的資料匯出。
清除資源
若要避免使用 Azure 資源而產生不必要的費用,您應該刪除您在本練習開始時所建立的 iot-central-apps-RG 資源群組。 若要這樣做,請在 Azure 入口網站中,瀏覽至 [iot-central-apps-RG] 窗格,然後在工具列中選取 [刪除資源群組] 項目。 在 [鍵入資源群組名稱] 文字方塊中,輸入 iot central-apps-RG,然後選取 [刪除]。