共用方式為


教學課程:將 Azure 串流分析部署為 IoT Edge 模組

適用於:IoT Edge 1.5 核取記號 Azure IoT Edge 1.5

重要事項

IoT Edge 1.5 LTS 是支援的版本。 自 2024 年 11 月 12 日起,IoT Edge 1.4 LTS 已結束生命週期。 如果您採用舊版,請參閱更新 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 串流分析文件

先決條件

如果您沒有 Azure 帳戶,請在開始之前建立 免費帳戶

  • Azure IoT Edge 裝置。

    遵循 LinuxWindows 裝置快速入門中的步驟,使用 Azure 虛擬機作為 IoT Edge 裝置。

  • 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. 在搜尋列中輸入 串流分析 ,以在 Azure Marketplace 中尋找
    4. 選取 [建立],然後選取下拉式功能表中的 [串流分析作業]
  2. 提供下列值以建立您的新串流分析作業:

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

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

設定您的作業

在 Azure 入口網站中建立串流分析作業之後,請使用 輸入輸出查詢 進行設定,以在通過的數據上執行。

本節說明如何建立從 IoT Edge 裝置接收溫度數據的作業。 它會分析滾動 30 秒視窗中的數據。 如果該視窗中的平均溫度超過 70 度,作業會將警示傳送至 IoT Edge 裝置。

附註

您可以在部署作業時,指定數據的來源,並在下一節中設定 IoT Edge設定

設定您的輸入和輸出

  1. 在 Azure 入口網站中瀏覽至您的串流分析作業。

  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裝置上部署串流分析作業,請將 Azure 串流分析作業與記憶體帳戶產生關聯。 當您部署作業時,作業定義會作為容器導出至儲存帳戶。

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

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

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

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

部署作業

現在您已經準備就緒在 IoT Edge 裝置上部署 Azure 串流分析作業。

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

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

  1. 在 Azure 入口網站中,瀏覽至您的 IoT 中樞。

  2. 選取 [裝置管理] 功能表下的 [裝置],然後選取您的 IoT Edge 裝置以開啟該項。

  3. 選取 [設定模組]

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

    1. 選取 [+ 新增],然後選擇 [IoT Edge模組]
    2. 針對名稱,輸入 SimulatedTemperatureSensor
    3. 針對映像 URI,輸入 mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.5
    4. 保留其他預設設定,然後選取 [新增]
  5. 執行下列步驟,以新增 Azure 串流分析 Edge 作業:

    1. 選取 [+ 新增],然後選取 [Azure 串流分析模組]
    2. 選取訂用帳戶與您建立的 Azure 串流分析 Edge 作業。
    3. 選取 [儲存]

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

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

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

  7. 選取 [檢閱 + 建立]。 部署資訊清單隨即出現。

  8. 選取 [建立]

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

了解兩個新的模組

  1. 從裝置的 [設定模組] 索引標籤中,選取您的串流分析模組名稱,以將您導向 [更新 IoT Edge 模組] 頁面。 您可以在此處更新設定。

    [設定] 索引標籤具有指向標準 Azure 串流分析映像的映像 URI。 此單一映像會用於部署至 IoT Edge 裝置的每個串流分析模組。

    [模組對應項設定] 索引標籤會顯示 JSON,這個 JSON 會定義名為 ASAJobInfo 的 Azure 串流分析 (ASA) 屬性。 該屬性的值會指向儲存體容器中的作業定義。 此屬性表示串流分析映像如何以您特定的作業詳細資料進行設定。

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

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

將路由指派至您的模組

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

  2. 在 [路由] 索引標籤上,請定義要用來在模組與 IoT 中樞之間傳遞訊息的方式。 訊息是使用名稱和值組建構而成。

    使用下列表格所示的配對來新增路由名稱和值。 以您的 Azure 串流分析模組的名稱取代 {moduleName} 的執行個體。 此模組應該與您在 [設定模組] 頁面上裝置模組清單中所看到的名稱相同,如 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 中樞,以及先前在串流分析作業中設定的溫度輸入。 警示輸出訊息會傳送至 IoT 中樞和 SimulatedTemperatureSensor 模組,以觸發重設命令。

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

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

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

檢視資料

移至您的IoT Edge裝置,以查看 Azure 串流分析模組與 SimulatedTemperatureSensor 模組之間的互動。

附註

如果您使用虛擬機進行裝置,請使用 Azure Cloud Shell 直接存取所有 Azure 已驗證的服務。

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

    iotedge list  
    
  2. 檢視所有系統記錄和計量資料。 以您的 Azure 串流分析模組的名稱取代 {moduleName}

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

    iotedge logs SimulatedTemperatureSensor
    

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

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

清除資源

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

否則,請刪除本文中使用的本機設定和 Azure 資源,以避免產生費用。

刪除 Azure 資源

刪除 Azure 資源和資源群組是無法回復的動作。 請確定您不會誤刪錯誤的資源群組或資源。 如果您在現有資源群組內建立IoT中樞,且該資源群組具有您想要保留的資源,請只刪除IoT中樞資源本身,而不是資源群組。

若要刪除資源:

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

後續步驟

在本教學課程中,您會設定 Azure 串流分析作業,以分析來自 IoT Edge 裝置的數據。 您已在IoT Edge裝置上載入 Azure 串流分析模組,以處理並回應本機溫度增加,並將匯總的數據流傳送至雲端。 若要瞭解 Azure IoT Edge 如何協助您建置更多解決方案,請嘗試下一個教學課程。