教學課程:將 Azure 串流分析部署為 IoT Edge 模組
適用於: IoT Edge 1.5 IoT Edge 1.4
重要
IoT Edge 1.5 LTS 和 IoT Edge 1.4 LTS 為支援的版本。 IoT Edge 1.4 LTS 於 2024 年 11 月 12 日結束生命週期。 如果您是舊版,請參閱更新 IoT Edge。
在本教學課程中,您會在 Azure 入口網站中建立 Azure 串流分析作業,然後將其部署為 IoT Edge 模組,不必額外編寫程式碼。
您將學習如何:
- 建立 Azure 串流分析作業以在邊緣上處理資料。
- 將新的 Azure 串流分析作業與其他 IoT Edge 模組連結。
- 從 Azure 入口網站將 Azure 串流分析作業部署至 IoT Edge 裝置。
本教學課程中的串流分析模組會計算 30 秒滾動時段的平均溫度。 當平均溫度達到 70 度時,模組就會傳送警示,提醒裝置採取因應動作。 在此案例中,該動作為重設模擬溫度感應器。 在生產環境中,您可能會使用此功能用來關閉機器,或在溫度達到危險程度時採取預防措施。
為何在 IoT Edge 中使用 Azure 串流分析?
許多 IoT 解決方案皆使用分析服務,來深入了解資料從 IoT 裝置送達雲端時的相關情形。 透過 Azure IoT Edge,您可以採取 Azure 串流分析邏輯並將其運用於裝置本身。 藉由處理 Edge 上的遙測資料流,您將可減少上傳的資料量,並縮短將見解付諸行動的所需時間。 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 裝置採取動作。
建立儲存體帳戶
當您建立要在 IoT Edge 裝置上執行的 Azure 串流分析作業時,該作業必須以可從裝置呼叫的方式儲存。 您可以使用現有的 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 中樞]。
如果您沒有在清單中看到 [Edge 中樞] 選項,您可能已將串流分析作業建立為雲端託管的作業。 請嘗試建立新的作業,並確保選取 [Edge] 作為主控環境。
在 [新增輸入] 窗格中,輸入 [溫度] 作為 [輸入別名]。
保留其他欄位的預設值,然後選取 [儲存]。
在 [作業拓撲] 下方開啟 [輸出],然後選取 [新增]。
從下拉式清單中選擇 [Edge 中樞]。
在 [新增輸出] 窗格中,輸入 [警示] 作為輸出別名。
保留其他欄位的預設值,然後選取 [儲存]。
建立查詢
在 [作業拓撲] 下方,選取 [查詢]。
將預設文字取代為下列查詢。
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 Gen2] 選項。
您的 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.5。
- 保留其他預設設定,然後選取 [新增]。
執行下列步驟,以新增 Azure 串流分析 Edge 作業:
- 選取 [+ 新增],然後選取 [Azure 串流分析模組]。
- 選取訂用帳戶與您建立的 Azure 串流分析 Edge 作業。
- 選取 [儲存]。
儲存變更之後,您串流分析作業的詳細資料就會發佈到您所建立的儲存體容器。
在您新增的串流分析完成部署後,請確認 [設定模組] 頁面上有出現兩個新的模組。
選取 [檢閱 + 建立]。 部署資訊清單隨即出現。
選取 建立。
在裝置的 [設定模組] 頁面上,您在幾分鐘後應會看到模組列出且正在執行。 若您沒有看到模組,請重新整理頁面,或等待幾分鐘後再重新整理一次。
了解兩個新的模組
從裝置的 [設定模組] 索引標籤中,選取您的串流分析模組名稱,以將您導向 [更新 IoT Edge 模組] 頁面。 您可以在此處更新設定。
[設定] 索引標籤具有指向標準 Azure 串流分析映像的映像 URI。 此單一映像會用於部署至 IoT Edge 裝置的每個串流分析模組。
[模組對應項設定] 索引標籤會顯示 JSON,這個 JSON 會定義名為 ASAJobInfo 的 Azure 串流分析 (ASA) 屬性。 該屬性的值會指向儲存體容器中的作業定義。 此屬性表示串流分析映像如何以您特定的作業詳細資料進行設定。
根據預設,串流分析模組的名稱會與其所依據的作業相同。 您可以視需要變更此頁面上的模組名稱,但這不是必要的。
如果您已進行變更,請選取 [套用],如果您未進行任何變更,請選取 [取消]。
將路由指派至您的模組
在 [在裝置上設定模組:<your-device-name>] 頁面上,選取 [下一步: 路由]。
在 [路由] 索引標籤上,請定義要用來在模組與 IoT 中樞之間傳遞訊息的方式。 訊息是使用名稱和值組建構而成。
使用下列表格所示的配對來新增路由名稱和值。 以您的 Azure 串流分析模組的名稱取代
{moduleName}
的執行個體。 此模組應該與您在 [設定模組] 頁面上裝置模組清單中所看到的名稱相同,如 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
檢視所有系統記錄和計量資料。 以您的 Azure 串流分析模組的名稱取代 {moduleName}:
iotedge logs -f {moduleName}
藉由檢視感應器記錄,查看影響 SimulatedTemperatureSensor 的重設命令:
iotedge logs SimulatedTemperatureSensor
您可以看到機器的溫度逐漸上升,直到在 30 秒內到達 70 度。 接著串流分析模組會觸發程序重設,且機器溫度降回為 21 度。
清除資源
如果您打算繼續閱讀下一篇建議的文章,則可以保留您所建立的資源和組態,並加以重複使用。 您可以也繼續使用相同的 IoT Edge 裝置作為測試裝置。
否則,可以刪除您在本文中使用的本機設定和 Azure 資源,以避免產生費用。
刪除 Azure 資源
刪除 Azure 資源和資源群組是無法回復的動作。 請確定您不會誤刪錯誤的資源群組或資源。 如果您在現有的資源群組內建立了 IoT 中樞,而該群組包含您想要保留的資源,則您只需刪除 IoT 中樞資源本身,而不要刪除資源群組。
若要刪除資源:
登入 Azure 入口網站,然後選取 [資源群組]。
選取您的 IoT Edge 測試資源所屬的資源群組名稱。
檢閱資源群組所包含的資源清單。 若要將其全部刪除,您可以選取 [刪除資源群組]。 如果只想刪除某些部分,則可以選取各個資源以將其個別刪除。
下一步
在本教學課程中,您設定了 Azure 串流分析作業,以分析來自 IoT Edge 裝置的資料。 接著,請將此 Azure 串流分析模組載入至 IoT Edge 裝置,以處理及因應本機的溫度上升,以及將彙總的資料流傳送至雲端。 若要進一步了解 Azure IoT Edge 可如何為您的企業建立解決方案,請繼續閱讀其他教學課程。