共用方式為


教學:部署 Azure 串流分析 作為 IoT Edge 模組

適用於:IoT Edge 1.5 勾選標記 IoT Edge 1.5

重要事項

IoT Edge 1.5 LTS 是支援的版本。 IoT Edge 1.4 LTS 於 2024 年 11 月 12 日終止生命週期。 如果你使用的是較早版本,請參考 Update IoT Edge

在這個教學中,你可以在 Azure 入口網站建立一個 Azure 串流分析 工作,並以 IoT Edge 模組部署,無需額外程式碼。

在本教學課程中,您將瞭解如何:

  • 建立一個 Azure 串流分析 工作來處理邊緣資料。
  • 將新的 Azure 串流分析 工作與其他 IoT Edge 模組連結起來。
  • 從 Azure 門戶部署 Azure 串流分析 工作到 IoT Edge 裝置。

圖,展示串流架構,包括Azure 串流分析作業的暫存與部署。

本教學課程中的串流分析模組會計算 30 秒滾動時段的平均溫度。 平均達到 70 時,模組會傳送警示,讓裝置採取動作。 在此情況下,動作是重設仿真的溫度感測器。 在生產環境中,您可以使用此功能來關閉機器,或在溫度達到危險等級時採取預防措施。

為什麼要在 IoT Edge 中使用 Azure 串流分析?

許多 IoT 解決方案皆使用分析服務,來深入了解資料從 IoT 裝置送達雲端時的相關情形。 透過使用 Azure IoT Edge,你可以將 Azure 串流分析 邏輯移到裝置本身。 在邊緣處理遙測數據流可以減少上傳的數據量,並縮短響應可行洞見所需的時間。 Azure IoT Edge 與 Azure 串流分析 整合,簡化你的工作負載開發。

Azure 串流分析 使用結構化查詢語法,在雲端及 IoT Edge 裝置上進行資料分析。 更多資訊請參閱 Azure 串流分析 documentation

先決條件

如果你沒有Azure帳號,請在開始前先建立一個free帳號

  • Azure IoT Edge 設備。

    使用 Azure 虛擬機作為 IoT Edge 裝置,請依照快速入門中的步驟設定,適用於 LinuxWindows 裝置

  • 在 Azure 中,有免費或標準層級的IoT 中樞

建立 Azure 串流分析 工作之制定

在這個區塊中,你會建立一個 Azure 串流分析 工作,內容如下:

  • 從你的 IoT Edge 裝置接收資料。
  • 查詢遙測數據,以取得設定範圍以外的值。
  • 根據查詢結果對 IoT Edge 裝置採取行動。

建立儲存體帳戶

當你建立一個 Azure 串流分析 工作,要在 IoT Edge 裝置上執行時,你需要先儲存它,讓裝置能夠存取。 你可以使用現有的 Azure 儲存體 帳號,或是建立一個新的。

  1. 在 Azure 入口網站,請前往 建立一個資源 > 儲存體 > 儲存體帳戶

  2. 提供下列值以建立您的儲存體帳戶:

    欄位
    訂用帳戶 選擇與您的 IoT 中樞相同的訂用帳戶。
    資源群組 使用同一個資源群組來管理所有 IoT Edge 快速入門和教學的測試資源。 例如 IoTEdgeResources。
    名稱 提供儲存體帳戶的唯一名稱。
    地點 選取您附近的位置。
  3. 保留其他欄位的預設值,然後選取 [ 檢閱 + 建立]。

  4. 檢視你的設定,然後選擇 建立。

建立新作業

  1. Azure 入口網站,選擇:

    1. 建立資源
    2. 左側功能表中的 [物聯網]
    3. 在搜尋欄輸入 Stream Analytics 即可在Azure Marketplace中找到
    4. 選取 [建立],然後選取下拉式功能表中的 [串流分析作業]
  2. 提供下列值以建立您的新串流分析作業:

    欄位
    名稱 為您的作業提供名稱。 例如 IoTEdgeJob
    訂用帳戶 選擇與您的 IoT 中樞相同的訂用帳戶。
    資源群組 在 IoT Edge 快速入門和教學期間建立的所有測試資源,請使用同一個資源群組。 例如,名稱為 IoTEdgeResources 的資源。
    區域 選擇接近您的位置。
    裝載環境 選取 [邊緣]。 這個選項讓你可以部署到 IoT Edge 裝置,而不是雲端。
  3. 選擇 檢閱 + 創建。

  4. 確認您的選項,然後選取 [建立]。

設定您的作業

在 Azure 入口網站建立 Stream Analytics 工作後,將其設定為具有 inputoutput,以及 query,以便對通過的資料進行執行。

本節說明如何建立一個能從 IoT Edge 裝置接收溫度資料的工作。 它會分析滾動 30 秒視窗中的數據。 如果該時段的平均溫度超過 70 度,工作會向 IoT Edge 裝置發送警示。

附註

你需要在下一節 Configure IoT Edge settings 中,指定資料的來源和目的地,並部署工作。

設定您的輸入和輸出

  1. 在 Azure 入口網站中切換到你的 Stream Analytics 職缺。

  2. 在 [作業拓撲] 底下,選取 [ 輸入],然後選取 [ 新增輸入]。

  3. 從下拉式清單中選擇 [Edge Hub ]。

    如果您沒有在清單中看到 Edge Hub 選項,您可能已將串流分析作業建立為雲端裝載的作業。 請嘗試建立新的作業,並確定您選取 [Edge ] 作為主控環境。

  4. 在 [新增輸入] 窗格中,輸入 [溫度] 作為 [輸入別名]。

  5. 將其他欄位保留為預設值,然後選取 [儲存]。

  6. 在 [作業拓撲] 底下,選取 [ 輸出],然後選取 [ 新增]。

  7. 從下拉式清單中選擇 [Edge 中樞]。

  8. 在 [新增輸出] 窗格中,輸入 [警示] 作為輸出別名。

  9. 將其他欄位保留為預設值,然後選取 [儲存]。

建立查詢

  1. 在 [作業拓撲] 下方,選取 [查詢]。

  2. 將預設文字取代為下列查詢:

    SELECT  
        'reset' AS command
    INTO
       alert
    FROM
       temperature TIMESTAMP BY timeCreated
    GROUP BY TumblingWindow(second,30)
    HAVING Avg(machine.temperature) > 70
    

    在此查詢中,如果 30 秒時段中的機器平均溫度達到 70 度,SQL 程式碼即會將重設命令傳送至輸出警示。 重設命令會預先程式設計到感測器中做為動作。

  3. 選取儲存查詢。

配置 IoT Edge 設定

要在 IoT Edge 裝置上部署 Stream Analytics 工作,請將您的 Azure 串流分析 工作與儲存帳號關聯。 當您部署作業時,作業定義會作為容器導出至儲存帳戶。

  1. 在您的串流分析服務中,於 [ 設定 ] 功能表底下,選取 [ 儲存器帳戶設定]。

  2. 選擇 [從訂用帳戶選取 Blob 儲存體/ADLS Gen2] 選項。

  3. 你的 Azure 儲存帳號會自動顯示在頁面上。 若您沒有看到,請務必確保您已建立儲存體。 如果您需要選擇不同於 [ 儲存體帳戶 ] 欄位中所列的記憶體,請從下拉功能表中選取它。

  4. 如果您已進行任何變更,則請選取 [儲存]。

部署作業

你現在準備好在你的 IoT Edge 裝置上部署 Azure 串流分析 工作了。

在本節中,你可以使用 Azure 入口網站的 Set Modules 精靈來建立 部署清單。 部署資訊清單是一個 JSON 檔案,用以說明將部署到裝置的所有模組。 部署資訊清單也會顯示用來儲存模組映像的容器登錄、管理模組的方式,以及模組彼此通訊的方式。 您的 IoT Edge 裝置會從 IoT 中樞 取得部署清單,然後利用其中的資訊部署並配置所有指定的模組。

在本教學課程中,您會部署兩個模組。 第一個是 SimulatedTemperatureSensor,這是模擬溫度和溼度感應器的模組。 第二個是您的串流分析作業。 感應器模組會提供您作業查詢分析的資料流。

  1. 在 Azure 入口網站中,導航到你的物聯網中樞。

  2. Device management選單中選擇Devices,然後選擇你的IoT Edge裝置來開啟它。

  3. 選取 [設定模組]。

  4. 如果您先前在此裝置上部署過 SimulatedTemperatureSensor 模組,它可能會自動填入。 若非如此,請以下列步驟新增模組:

    1. 選擇 + Add,並選擇 IoT Edge Module
    2. 針對名稱,輸入 SimulatedTemperatureSensor。
    3. 針對映像 URI,輸入 mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.5。
    4. 保留其他預設設定,然後選取 [新增]。
  5. 透過以下步驟新增您的 Azure 串流分析 Edge 工作:

    1. 選擇 + Add,並選擇 Azure 串流分析 模組
    2. 選擇你的訂閱以及你所建立的 Azure 串流分析 Edge 工作。
    3. 選取 [儲存]。

    儲存變更之後,您串流分析作業的詳細資料就會發佈到您所建立的儲存體容器。

  6. 在您新增的串流分析完成部署後,請確認 [設定模組] 頁面上有出現兩個新的模組。

    確認裝置上有兩個新模組的螢幕擷取畫面。螢幕擷取畫面也會顯示 [檢閱 + 建立] 按鈕所在的位置。

  7. 選擇 檢閱 + 創建。 部署資訊清單隨即出現。

  8. 選取 ,創建。

  9. 在裝置的 [設定模組] 頁面上,您在幾分鐘後應會看到模組列出且正在執行。 若您沒有看到模組,請重新整理頁面,或等待幾分鐘後再重新整理一次。

了解兩個新的模組

  1. 從裝置的 Set modules 標籤中,選擇你的 Stream Analytics 模組名稱,即可跳到 Update IoT Edge Module 頁面。 您可以在此處更新設定。

    Settings 分頁中有 Image URI,指向標準的 Azure 串流分析 影像。 這張單一映像用於所有部署到 IoT Edge 裝置的串流分析模組。

    Module Twin Settings 分頁顯示定義 Azure 串流分析 (ASA) 屬性的 JSON,稱為 ASAJobInfo。 該屬性的值會指向儲存體容器中的作業定義。 此屬性表示串流分析映像如何以您特定的作業詳細資料進行設定。

    根據預設,串流分析模組的名稱會與其所依據的作業相同。 您可以視需要變更此頁面上的模組名稱,但這不是必要的。

  2. 如果您已進行變更,請選取 [套用],如果您未進行任何變更,請選取 [取消]。

將路由指派至您的模組

  1. 在 [在裝置上設定模組:your-device-name] 頁面上,選取 [下一步: 路由]。

  2. Routes 標籤中,你可以定義訊息如何在模組與 IoT 中樞 之間傳遞。 訊息是使用名稱和值組建構而成。

    使用下列表格所示的配對來新增路由名稱和值。 將 {moduleName} 的實例替換成你的Azure 串流分析模組名稱。 這個模組名稱應該就是你在Set modules頁面上看到的模組清單名稱,就像Azure入口網站裡顯示的那樣。

    截圖顯示在 Azure 入口網站中顯示的您 IoT Edge 裝置的串流分析模組名稱。

    名稱
    telemetryToCloud FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstream
    alertsToCloud FROM /messages/modules/{moduleName}/* INTO $upstream
    alertsToReset FROM /messages/modules/{moduleName}/* INTO BrokeredEndpoint("/modules/SimulatedTemperatureSensor/inputs/control")
    telemetryToAsa FROM /messages/modules/SimulatedTemperatureSensor/* INTO BrokeredEndpoint("/modules/{moduleName}/inputs/temperature")

    你在這裡宣告的路由定義了 IoT Edge 裝置中資料的流動。 SimulatedTemperatureSensor 的遙測資料會被傳送到 IoT 中樞,以及送入在 Stream Analytics 工作中設定的 temperature 輸入。 alert 輸出訊息會傳送給 IoT 中樞 及 SimulatedTemperatureSensor 模組,以觸發重置指令。

  3. 選取 [下一步:檢閱 + 建立]。

  4. 在 [檢閱 + 建立] 索引標籤中,您可以看到您在精靈中提供的資訊如何轉換成 JSON 部署資訊清單。

  5. 檢閱資訊清單後,請選取 [建立] 以完成設定您的模組。

檢視資料

前往你的 IoT Edge 裝置,查看 Azure 串流分析 模組與 SimulatedTemperatureSensor 模組之間的互動。

附註

如果你用於設備的是虛擬機,請使用 Azure Cloud Shell,直接存取所有 Azure 認證服務。

  1. 檢查是否所有模組皆在 Docker 中執行:

    iotedge list  
    
  2. 檢視所有系統記錄和計量資料。 將 {moduleName} 替換成你Azure 串流分析模組的名稱:

    iotedge logs -f {moduleName}  
    
  3. 藉由檢視感應器記錄,查看影響 SimulatedTemperatureSensor 的重設命令:

    iotedge logs SimulatedTemperatureSensor
    

    您可以看到機器的溫度逐漸上升,直到在 30 秒內到達 70 度。 接著串流分析模組會觸發程序重設,且機器溫度降回為 21 度。

    模組記錄輸出中重設命令的螢幕快照。

清除資源

如果您想要繼續閱讀下一篇文章,請保留您所建立的資源和組態,並重複使用它們。 你也可以繼續使用同一款 IoT Edge 裝置作為測試裝置。

否則,請刪除本文中使用的本地配置和 Azure 資源,以避免費用。

刪除 Azure 資源

你無法撤銷刪除 Azure 資源和資源群組。 請確定您不會誤刪錯誤的資源群組或資源。 如果你在現有資源群組內建立了 IoT 中樞,該群組包含你想保留的資源,請只刪除 IoT 中樞 本身的資源,不要刪除資源群組。

若要刪除資源:

  1. 登入 Azure 入口網站,然後選擇 Resource Groups
  2. 選擇包含你 IoT Edge 測試資源的資源群組名稱。
  3. 檢閱資源群組所包含的資源清單。 若要將其全部刪除,您可以選取 [刪除資源群組]。 如果你只想刪除部分資源,請選擇每個資源單獨刪除。

後續步驟

在這個教學中,你會設定一個 Azure 串流分析 工作來分析來自 IoT Edge 裝置的資料。 你在 IoT Edge 裝置上載入 Azure 串流分析 模組,用來處理並回應本地溫度上升,並將彙整的資料串流傳送到雲端。 想了解 Azure IoT Edge 如何幫助你打造更多解決方案,請繼續閱讀下一個教學。

使用 Visual Studio Code