練習 - 實作 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 功能的元件。

  1. 在網頁瀏覽器中,瀏覽至 Azure 入口網站並登入,以存取您將在本課程模組中使用的 Azure 訂用帳戶。

  2. 使用 Azure 入口網站頁面開頭的 [搜尋資源、服務及文件] 方塊,以搜尋並選取 [函數應用程式]

  3. 在 [函數應用程式] 窗格上,選取 [+ 新增] 或 [+ 建立]

  4. 在 [建立函數應用程式] 窗格的 [基本] 索引標籤上,進行下列設定,然後選取 [檢閱 + 建立]

    設定 組態
    訂用帳戶 選取您將在本課程模組中使用的 Azure 訂用帳戶名稱。
    資源群組 建立新的資源群組,名為 iot-central-apps-RG
    函數應用程式名稱 輸入由小寫字母、數字或連字號組成的唯一名稱,並以字母開頭。
    發行 選取 [程式碼]
    執行階段堆疊 選取 .NET
    版本 選取 3.1
    區域 選取最接近您實驗室環境位置的 Azure 區域,最好符合您的 Azure IoT Central 部署位置。
    作業系統 Windows
    方案類型 使用量 (無伺服器)

    Screenshot of the Azure portal Create Function App blade Basics tab.

  5. 選取建立

    注意

    等候 Azure 函數應用程式佈建完成。 這可能需要最多兩分鐘的時間。

  6. 在顯示 Azure 入口網站與 Azure 函數應用程式佈建狀態窗格的瀏覽器視窗中,選取 [移至資源]

  7. 在 Azure 函數應用程式窗格上,選取 [函式],然後選取 [+ 建立]

  8. 在 [建立函式] 窗格上,選取 [HTTP 觸發程序] 範本項目,然後選取 [建立]。 如果出現提示,請接受 HTTP 觸發程序範本的預設值。

    Screenshot of the Azure portal Azure Function app Add function blade.

  9. 在 [HttpTrigger1] 窗格上,於垂直功能表列中選取 [編碼 + 測試]

  10. 在 [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 應用程式進行。

  11. 在 [HttpTrigger1 | 編碼 + 測試] 窗格上,選取 [取得函式 URL],然後記錄 Azure 函式 URL 的值。

  12. 若要測試新建立的函式,請在 [HttpTrigger1 | 編碼 + 測試] 窗格上,選取 [測試/執行]。 選取 [輸入] 索引標籤,然後選取 [執行]

    Screenshot of the Code + Test blade of the HttpTrigger1 blade with the Input tab selected.

  13. 若要驗證結果,請在 [HttpTrigger1 | 編碼 + 測試] 窗格上,檢閱記錄窗格,並驗證承載資料是否符合 [輸出] 索引標籤上所顯示的資料。

    Screenshot of the Code + Test blade of the HttpTrigger1 blade with the Output tab selected.

    注意

    您可能必須再次選取 [執行],才能在記錄窗格中產生結果。

設定並驗證 Azure IoT Central 應用程式的 IoT 遙測規則

  1. 啟動另一個網頁瀏覽器,並瀏覽至 [IoT Central 我的應用程式] 頁面。

  2. 如果出現提示,請登入以存取您在練習單元設定 Azure IoT Central 中所使用的 Azure 訂用帳戶。

  3. 在 [我的應用程式] 頁面上,選取 [adatum-iot-custom-application] 項目。

  4. 在垂直功能表中的 [擴充] 下,選取 [規則]

  5. 在 [規則] 頁面上,選取 [建立規則],然後進行下列設定:

    設定 組態
    規則名稱 輸入 Adatum IoT 自訂應用程式測試規則
    裝置範本 選取 [Raspberry Pi]
    時間彙總 將其 [開啟],時間間隔值設定為 [5 分鐘]
    遙測 選取 [濕度]
    運算子 選取 [大於]
    彙總 選取 [平均]
    輸入值 輸入 30
    動作 選取 [+ Webhook]
    顯示名稱 輸入 Azure 函式 Webhook
    回撥 URL 貼上您在本練習上一個工作中記錄的 Azure 函式 URL 值。

    注意

    濕度遙測值是刻意人為降低,以叫用 Webhook 功能並觸發函式。 在真實情節中,您會將其調整為對應到保證引發警示或採取補救動作的條件。

  6. 在 [規則] 頁面上,選取 [完成],然後選取 [儲存]

  7. 切換至瀏覽器視窗,其中顯示您在本課程模組上一個練習中所使用的 [Raspberry Pi Azure IoT 線上模擬器] 頁面。 在此頁面上,驗證模擬裝置是否正在將訊息傳送至 Azure IoT Central 應用程式。 如果模擬器已停止,請直接在程式碼窗格後面選取 [執行]

  8. 切換回顯示 Azure 入口網站中 [HttpTrigger1 | 編碼 + 測試] 窗格的網頁瀏覽器視窗。 在垂直功能表中,選取 [監視] 項目,然後在 [HttpTrigger1 | 編碼 + 測試] 窗格上,選取 [記錄] 索引標籤。

  9. 驗證 [記錄] 窗格是否顯示為了回應 HTTP 觸發程序而產生的訊息,此觸發程序源自您稍早在此工作中所設定的 Azure IoT Central 應用程式 Webhook。

建立將儲存 IoT 遙測的 Azure 儲存體帳戶

  1. 切換至顯示 Azure 入口網站的網頁瀏覽器視窗。

  2. 在 Azure 入口網站中,使用 [搜尋資源、服務和文件] 文字方塊來搜尋並選取 [儲存體帳戶]

  3. 在 [儲存體帳戶] 窗格上,選取 [+ 新增] 或 [+ 建立]

  4. 在 [建立儲存體帳戶] 窗格的 [基本] 索引標籤上,進行下列設定 (將其他設定保留為預設值):

    設定 組態
    訂用帳戶 選取您將在本課程模組中使用的 Azure 訂用帳戶名稱。
    資源群組 選取 iot-central-apps-RG
    儲存體帳戶名稱 輸入包含 3 到 24 個小寫字母和數字的唯一名稱,並以字母開頭。
    效能 選取 [標準]。
    備援性 選取 [本地備援儲存體 (LRS)]

    Screenshot of the Azure portal, Create storage account blade, Basics tab.

  5. 在 [建立儲存體帳戶] 窗格的 [基本] 索引標籤上,選取 [檢閱 + 建立],然後選取 [建立]

    注意

    等候 Azure 儲存體帳戶佈建完成。 這可能需要大約兩分鐘的時間。

  6. 當新的帳戶佈建完成時,選取 [前往資源]

  7. 在 [Azure 儲存體帳戶] 窗格的垂直功能表中,選取 [容器],然後選取 [+容器]

  8. 在 [新增容器] 窗格的 [名稱] 文字方塊中,輸入 iotcontainer、將 [公用存取層級] 的設定保留為 [私人 (沒有匿名存取)],然後選取 [ 建立]

    Screenshot of the Azure portal, New container blade.

  9. 在 [Azure 儲存體帳戶] 窗格的垂直功能表中,於 [安全性 + 網路] 區段中選取 [存取金鑰]。 選取 [顯示金鑰],然後記錄對應至 key1 的連接字串值。

    Screenshot of the Azure portal, Access keys blade.

設定並驗證 Azure IoT Central 應用程式的資料匯出

  1. 切換至顯示 IoT Central 應用程式入口網站中 [adatum-iot-custom-application] 頁面的網頁瀏覽器視窗。

  2. 在 IoT Central 應用程式入口網站的 [adatum-iot-custom-application] 頁面上,於垂直功能表的 [擴充] 區段中選取 [資料匯出],然後選取 [新增匯出]

    Screenshot of the Azure IoT Central portal, Data export page.

  3. 在 [建立新的匯出] 頁面上,設定下列設定:

    設定 組態
    匯出名稱 輸入 Adatum IoT custom app export
    要匯出的資料類型 選取 [遙測]
    目的地 選取 [建立新的]
    新的目的地名稱 輸入 Adatum Blob Storage
    目的地類型 選取 Azure Blob 儲存體
    Connection string 貼上您在本練習上一個工作中複製的連接字串值。
    容器 輸入 iotcontainer

    Screenshot of the Azure IoT Central application export new destination settings.

  4. 選取 [建立],然後在 [建立新的匯出] 頁面上選取 [儲存]

  5. 切換至瀏覽器視窗,其中顯示您稍早在本練習中使用的 [Raspberry Pi Azure IoT 線上模擬器] 頁面。 在此頁面上,直接在程式碼窗格後面選取 [執行],並驗證模擬裝置是否正在將訊息傳送至 Azure IoT Central 應用程式。

  6. 切換至瀏覽器視窗,其中顯示 Azure 入口網站中的 [Azure 儲存體帳戶] 窗格。

  7. 在 [Azure 儲存體帳戶] 窗格的垂直功能表中,選取 [容器]

  8. 在容器清單中,選取 [iotcontainer] 項目。

  9. 在 [iotcontainer] 窗格上,驗證具有 GUID 型名稱的新資料夾是否存在。

    注意

    如果資料夾不存在,請等候大約一分鐘,然後選取 [重新整理]

  10. 在 [iotcontainer] 窗格上,選取新產生的資料夾,並瀏覽其子資料夾,直到您到達其任何子資料夾中的 Blob 為止。

  11. 在 [iotcontainer] 窗格上,選取您在上一個步驟中識別的 Blob。 在 [Blob] 窗格中,選取 [編輯] 索引標籤以顯示其內容。

    Screenshot of the content of a blob representing telemetry exported from the Azure IoT Central application.

  12. 切換至顯示 [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,然後選取 [刪除]