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

適用於:IoT Edge 1.4 複選標記 IoT Edge 1.4

重要

支援的版本是 IoT Edge 1.4。 如果您是舊版,請參閱更新 IoT Edge

在本教學課程中,您會在 Azure 入口網站 中建立 Azure 串流分析作業,然後將它部署為 IoT Edge 模組,而不需要額外的程式代碼。

您將學習如何:

  • 建立 Azure 串流分析作業以處理邊緣上的數據。
  • 連線 其他 IoT Edge 模組的新 Azure 串流分析作業。
  • 從 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 免費帳戶

建立 Azure 串流分析作業

在本節中,您會建立執行下列步驟的 Azure 串流分析作業:

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

建立儲存體帳戶

當您建立 Azure 串流分析作業以在 IoT Edge 裝置上執行時,必須以可從裝置呼叫的方式加以儲存。 您可以使用現有的 Azure 儲存體 帳戶,或立即建立新的帳戶。

  1. 在 Azure 入口網站 中,移至建立資源> 儲存體> 儲存體 帳戶。

  2. 提供下列值來建立記憶體帳戶:

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

  4. 檢閱您的設定,然後選取 [ 建立]。

建立新作業

  1. Azure 入口網站 中,選取:

    1. 建立資源
    2. 左側功能表中的物聯網
    3. 在搜尋列中輸入 串流分析 ,以在 Marketplace 中尋找
    4. 從下拉功能表中選取 [ 建立],然後 選取 [串流分析作業 ]

    此螢幕快照顯示在 Marketplace 中尋找串流分析作業服務的位置,以及建立新作業的位置。

  2. 提供下列值來建立新的串流分析作業:

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

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

設定您的作業

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

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

注意

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

設定輸入和輸出

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

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

    顯示在 Azure 入口網站 中新增串流輸入位置的螢幕快照。

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

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

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

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

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

    顯示在 Azure 入口網站 中新增數據流輸出位置的螢幕快照。

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

  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 Gen 2]。

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

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

    螢幕快照:在串流分析作業中新增記憶體帳戶的位置,Azure 入口網站。

部署作業

您現在已準備好在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.4
    4. 保留其他預設設定,然後選取 [ 新增]。
  5. 使用下列步驟新增 Azure 串流分析 Edge 作業:

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

    儲存變更之後,串流分析作業的詳細數據會發佈至您所建立的記憶體容器。

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

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

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

  8. 選取 建立

  9. 裝置的 [設定模組 ] 頁面上,幾分鐘后,您應該會看到列出並執行中的模組。 如果您沒有看到模組,請重新整理頁面,或再等候幾分鐘,然後再重新整理一次。

    顯示 Azure 入口網站 中裝置模組清單的螢幕快照。

瞭解兩個新的模組

  1. 從裝置的 [ 設定模組 ] 索引標籤中,選取您的串流分析模組名稱,以帶您前往 [ 更新 IoT Edge 模組 ] 頁面。 您可以在這裏更新設定。

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

    [模組對應項 設定] 索引標籤會顯示定義名為 ASAJobInfo 的 Azure 串流分析 (ASA) 屬性的 JSON。 該屬性的值會指向記憶體容器中的作業定義。 此屬性是串流分析映像設定方式,其中包含您的特定作業詳細數據。

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

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

將路由指派給模組

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

  2. 在 [路由] 索引標籤上,您可以定義如何在模組與 IoT 中樞 之間傳遞訊息。 訊息是使用名稱和值組來建構。

    使用下表所示的配對來新增路由名稱和值。 將的 {moduleName} 實例取代為您的 Azure 串流分析模組名稱。 此模組應該與您在 [設定模組] 頁面上的裝置模組清單中看到的名稱相同,如 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. 檢視所有系統記錄和計量數據。 將 {moduleName} 取代為您的 Azure 串流分析模組名稱:

    iotedge logs -f {moduleName}  
    
  3. 檢視感測器記錄,查看 reset 命令如何影響 SimulatedTemperatureSensor:

    iotedge logs SimulatedTemperatureSensor
    

    您可以觀察機器的溫度逐漸上升,直到它達到 70 度 30 秒。 然後串流分析模組會觸發重設,而機器溫度會降至 21。

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

清除資源

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

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

刪除 Azure 資源

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

若要刪除資源:

  1. 登入 Azure 入口網站,然後選取 [資源群組]。

  2. 選取包含IoT Edge測試資源的資源群組名稱。

  3. 檢閱資源群組中包含的資源清單。 如果您想要刪除所有資源群組,您可以選取 [ 刪除資源群組]。 如果您想要只刪除其中一些資源,您可以按下每個資源來個別刪除它們。

下一步

在本教學課程中,您已設定 Azure 串流分析作業,以分析來自 IoT Edge 裝置的數據。 接著,您已在IoT Edge裝置上載入此 Azure 串流分析模組,以處理並回應本機溫度增加,並將匯總的數據流傳送至雲端。 若要查看 Azure IoT Edge 如何為您的企業建立更多解決方案,請繼續進行其他教學課程。