教學課程:將 Azure 串流分析部署為 IoT Edge 模組
適用於: IoT Edge 1.4
重要
支援的版本是 IoT Edge 1.4。 如果您是舊版,請參閱更新 IoT Edge。
在本教學課程中,您會在 Azure 入口網站 中建立 Azure 串流分析作業,然後將它部署為 IoT Edge 模組,而不需要額外的程式代碼。
您將學習如何:
- 建立 Azure 串流分析作業以處理邊緣上的數據。
- 連線 其他 IoT Edge 模組的新 Azure 串流分析作業。
- 從 Azure 入口網站 將 Azure 串流分析作業部署至 IoT Edge 裝置。
本教學課程中的串流分析模組會計算滾動 30 秒時段的平均溫度。 當平均達到 70 時,模組會傳送警示,讓裝置採取動作。 在此情況下,該動作是重設仿真的溫度感測器。 在生產環境中,您可以使用此功能來關閉機器,或在溫度達到危險等級時採取預防措施。
為何在IoT Edge中使用 Azure 串流分析?
許多IoT解決方案會使用分析服務,從IoT裝置抵達雲端時,取得數據的深入解析。 使用 Azure IoT Edge,您可以採用 Azure 串流分析 邏輯,並將其移至裝置本身。 藉由在邊緣處理遙測串流,您可以減少上傳的數據量,並減少響應可採取動作的深入解析所需的時間。 Azure IoT Edge 和 Azure 串流分析已整合,可簡化工作負載開發。
Azure 串流分析提供豐富的結構化查詢語法,可用於雲端和 IoT Edge 裝置上的數據分析。 如需詳細資訊,請參閱 Azure 串流分析文件。
必要條件
如果您沒有 Azure 訂用帳戶,請在開始之前先建立 Azure 免費帳戶。
Azure IoT Edge 裝置。
您可以遵循 Linux 或 Windows 裝置快速入門中的步驟,使用 Azure 虛擬機作為 IoT Edge 裝置。
Azure 中的免費或標準層 IoT 中樞。
建立 Azure 串流分析作業
在本節中,您會建立執行下列步驟的 Azure 串流分析作業:
- 從 IoT Edge 裝置接收數據。
- 查詢遙測數據,以取得設定範圍以外的值。
- 根據查詢結果對IoT Edge裝置採取動作。
建立儲存體帳戶
當您建立 Azure 串流分析作業以在 IoT Edge 裝置上執行時,必須以可從裝置呼叫的方式加以儲存。 您可以使用現有的 Azure 儲存體 帳戶,或立即建立新的帳戶。
在 Azure 入口網站 中,移至建立資源> 儲存體> 儲存體 帳戶。
提供下列值來建立記憶體帳戶:
欄位 值 訂用帳戶 選擇與您的 IoT 中樞相同的訂用帳戶。 資源群組 建議您針對IoT Edge快速入門和教學課程,針對所有測試資源使用相同的資源群組。 例如, IoTEdgeResources。 名稱 提供儲存體帳戶的唯一名稱。 Location 選擇接近您的位置。 保留其他欄位的預設值,然後選取 [ 檢閱 + 建立]。
檢閱您的設定,然後選取 [ 建立]。
建立新作業
在 Azure 入口網站 中,選取:
- 建立資源
- 左側功能表中的物聯網
- 在搜尋列中輸入 串流分析 ,以在 Marketplace 中尋找
- 從下拉功能表中選取 [ 建立],然後 選取 [串流分析作業 ]
提供下列值來建立新的串流分析作業:
欄位 值 名稱 為您的作業提供名稱。 例如, IoTEdgeJob 訂用帳戶 選擇與您的 IoT 中樞相同的訂用帳戶。 資源群組 建議您針對您在IoT Edge快速入門和教學課程期間建立的所有測試資源使用相同的資源群組。 例如,名為 IoTEdgeResources的資源。 區域 選擇接近您的位置。 主控環境 選取 [邊緣]。 此選項表示部署會移至IoT Edge裝置,而不是裝載於雲端。 選取 [檢閱 + 建立]。
確認您的選項,然後選取 [ 建立]。
設定您的作業
在 Azure 入口網站 中建立串流分析作業之後,您可以使用輸入、輸出和查詢來設定它,以在通過的數據上執行。
本節會建立從 IoT Edge 裝置接收溫度數據的作業。 它會分析滾動 30 秒視窗中的數據。 如果該視窗中的平均溫度超過 70 度,則會將警示傳送至 IoT Edge 裝置。
注意
您可以在部署作業時,指定數據的來源確切位置,並在下一節 中設定IoT Edge設定。
設定輸入和輸出
流覽至 Azure 入口網站 中的串流分析作業。
在 [作業拓撲] 底下,選取 [輸入],然後選取 [新增輸入]。
從下拉式清單中選擇 [Edge Hub]。
如果您沒有在清單中看到 Edge Hub 選項,您可能已將串流分析作業建立為雲端裝載的作業。 請嘗試建立新的作業,並確定選取 [Edge ] 作為主控環境。
在 [ 新增輸入 ] 窗格中,輸入 溫度 作為 輸入別名。
保留其他欄位的預設值,然後選取 [儲存]。
在 [作業拓撲] 下,開啟 [輸出],然後選取 [新增]。
從下拉式清單中選擇 [Edge Hub]。
在 [ 新增輸出 ] 窗格中,輸入 警示 作為輸出別名。
保留其他欄位的預設值,然後選取 [儲存]。
建立查詢
在 [作業拓撲] 下方,選取 [查詢]。
將預設文字取代為下列查詢。
SELECT 'reset' AS command INTO alert FROM temperature TIMESTAMP BY timeCreated GROUP BY TumblingWindow(second,30) HAVING Avg(machine.temperature) > 70
在此查詢中,如果 30 秒視窗中的平均機器溫度達到 70 度,SQL 程式代碼會將重設命令傳送至警示輸出。 重設命令已預先程式設計到感測器中,做為可採取的動作。
選取 [儲存佇列]。
設定 IoT Edge 設定
若要準備要部署在IoT Edge裝置上的串流分析作業,您必須將 Azure 串流分析作業與記憶體帳戶產生關聯。 當您部署作業時,作業定義會以容器的形式匯出至記憶體帳戶。
在 [設定] 功能表下的串流分析服務中,選取 [儲存體 帳戶設定]。
從您的訂用帳戶選項中選擇 [選取 Blob 記憶體/ADLS Gen 2]。
您的 Azure 記憶體帳戶會自動顯示在頁面上。 如果您沒有看到記憶體,請確定您 建立記憶體。 或者,如果您需要選擇不同於 [儲存體 帳戶] 字段中所列的記憶體,請從下拉功能表中選取它。
如果您必須進行任何變更,請選取 [儲存]。
部署作業
您現在已準備好在IoT Edge裝置上部署 Azure 串流分析作業。
在本節中,您會使用 Azure 入口網站 中的 [設定模組] 精靈來建立部署指令清單。 部署指令清單是 JSON 檔案,描述部署至裝置的所有模組。 指令清單也會顯示儲存模組映像的容器登錄、應如何管理模組,以及模組如何彼此通訊。 IoT Edge 裝置會從 IoT 中樞 擷取其部署指令清單,然後使用其中的資訊來部署及設定其所有指派的模組。
在本教學課程中,您會部署兩個模組。 第一個是 SimulatedTemperatureSensor,這是模擬溫度和濕度感測器的模組。 第二個是串流分析作業。 感測器模組會提供作業查詢所分析的數據串流。
在 Azure 入口網站中,瀏覽至您的 IoT 中樞。
選取 [裝置管理] 功能表下的 [裝置],然後選取您的IoT Edge裝置加以開啟。
選取 [設定模組]。
如果您先前在此裝置上部署 SimulatedTemperatureSensor 模組,它可能會自動填入。 如果沒有,請使用下列步驟來新增模組:
- 選取 [+ 新增 ],然後選擇 [ IoT Edge 模組]。
- 針對名稱,輸入 SimulatedTemperatureSensor。
- 針對映像 URI,輸入 mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.4。
- 保留其他預設設定,然後選取 [ 新增]。
使用下列步驟新增 Azure 串流分析 Edge 作業:
- 選取 [+ 新增 ],然後選擇 [Azure 串流分析模組]。
- 選取您的訂用帳戶和您所建立的 Azure 串流分析 Edge 作業。
- 選取 [儲存]。
儲存變更之後,串流分析作業的詳細數據會發佈至您所建立的記憶體容器。
串流分析新增完成部署之後,請確認 [設定模組] 頁面上會出現 兩個新的模組 。
選取 [檢閱 + 建立]。 部署指令清單隨即出現。
選取 建立。
在 裝置的 [設定模組 ] 頁面上,幾分鐘后,您應該會看到列出並執行中的模組。 如果您沒有看到模組,請重新整理頁面,或再等候幾分鐘,然後再重新整理一次。
瞭解兩個新的模組
從裝置的 [ 設定模組 ] 索引標籤中,選取您的串流分析模組名稱,以帶您前往 [ 更新 IoT Edge 模組 ] 頁面。 您可以在這裏更新設定。
[設定] 索引標籤具有指向標準 Azure 串流分析映射的 [映射 URI]。 此單一映像會用於部署到IoT Edge裝置的每個串流分析模組。
[模組對應項 設定] 索引標籤會顯示定義名為 ASAJobInfo 的 Azure 串流分析 (ASA) 屬性的 JSON。 該屬性的值會指向記憶體容器中的作業定義。 此屬性是串流分析映像設定方式,其中包含您的特定作業詳細數據。
根據預設,串流分析模組會採用與其所依據之作業相同的名稱。 您可以視需要變更此頁面上的模組名稱,但並非必要。
如果您做了變更,請選取 [套用 ], 如果您未進行任何變更,請選取 [取消 ]。
將路由指派給模組
在 [ 在 device:<your-device-name> 上設定模組] 頁面上,選取 [下一步:路由]。
在 [路由] 索引標籤上,您可以定義如何在模組與 IoT 中樞 之間傳遞訊息。 訊息是使用名稱和值組來建構。
使用下表所示的配對來新增路由名稱和值。 將的
{moduleName}
實例取代為您的 Azure 串流分析模組名稱。 此模組應該與您在 [設定模組] 頁面上的裝置模組清單中看到的名稱相同,如 Azure 入口網站 所示。名稱 值 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 模組以觸發重設命令。
完成時,選取下一步:檢閱 + 建立。
在 [ 檢閱 + 建立 ] 索引標籤中,您可以看到精靈中提供的資訊如何轉換成 JSON 部署指令清單。
當您完成檢閱指令清單時,請選取 [建立] 以完成模組的設定。
檢視資料
現在您可以移至 IoT Edge 裝置,以查看 Azure 串流分析模組與 SimulatedTemperatureSensor 模組之間的互動。
注意
如果您使用虛擬機進行裝置,您可以使用 Azure Cloud Shell 直接存取所有 Azure 已驗證的服務。
檢查所有模組都在 Docker 中執行:
iotedge list
檢視所有系統記錄和計量數據。 將 {moduleName} 取代為您的 Azure 串流分析模組名稱:
iotedge logs -f {moduleName}
檢視感測器記錄,查看 reset 命令如何影響 SimulatedTemperatureSensor:
iotedge logs SimulatedTemperatureSensor
您可以觀察機器的溫度逐漸上升,直到它達到 70 度 30 秒。 然後串流分析模組會觸發重設,而機器溫度會降至 21。
清除資源
如果您打算繼續閱讀下一篇建議的文章,您可以保留您所建立的資源和組態並重複使用它們。 您也可以繼續使用與測試裝置相同的 IoT Edge 裝置。
否則,您可以刪除本文中使用的本機設定和 Azure 資源,以避免產生費用。
刪除 Azure 資源
刪除 Azure 資源和資源群組是無法回復的動作。 請確定您不會不小心刪除錯誤的資源群組或資源。 如果您在現有資源群組內建立IoT中樞,且該資源群組具有您想要保留的資源,請只刪除IoT中樞資源本身,而不是資源群組。
若要刪除資源:
登入 Azure 入口網站,然後選取 [資源群組]。
選取包含IoT Edge測試資源的資源群組名稱。
檢閱資源群組中包含的資源清單。 如果您想要刪除所有資源群組,您可以選取 [ 刪除資源群組]。 如果您想要只刪除其中一些資源,您可以按下每個資源來個別刪除它們。
下一步
在本教學課程中,您已設定 Azure 串流分析作業,以分析來自 IoT Edge 裝置的數據。 接著,您已在IoT Edge裝置上載入此 Azure 串流分析模組,以處理並回應本機溫度增加,並將匯總的數據流傳送至雲端。 若要查看 Azure IoT Edge 如何為您的企業建立更多解決方案,請繼續進行其他教學課程。