使用 Azure Logic Apps 來監視來自 IoT 中樞的傳入裝置遙測,並在觸發警示時傳送通知。
Azure Logic Apps 可協助您跨內部部署和雲端服務、多個企業和各種通訊協定協調工作流程。 邏輯應用程式會從觸發程式開始,然後是一或多個動作,這些動作可以使用內建控制項 (例如條件和反覆運算器) 進行排序。 這種彈性會讓 Logic Apps 成為 IoT 監視案例的理想 IoT 解決方案。 例如,從 IoT 中樞端點抵達裝置的資料可以起始邏輯應用程式工作流程,將資料存放在 Azure 儲存體 Blob 中、傳送電子郵件警示以警告資料異常、在裝置報告失敗時排程技術人員造訪等等。
在本教學課程中,您會執行下列工作:
建立服務匯流排佇列。 在 IoT 中樞中建立路由,如果訊息包含異常的溫度讀數,則會將訊息傳送至服務匯流排佇列。 建立邏輯應用程式,以監看到達佇列中的訊息,並傳送電子郵件警示。
在裝置上執行的用戶端程式碼會在傳送至 IoT 中樞的每個遙測訊息上設定應用程式屬性 temperatureAlert。 當用戶端程式碼偵測到溫度高於指定臨界值時,它會將此屬性設定為 true;否則,它會將屬性設定為 false。
到達 IoT 中樞的訊息看起來類似下列,遙測資料包含在本文中,而 temperatureAlert 屬性則包含在應用程式屬性中 (不會顯示系統屬性):
{
"body": {
"messageId": 18,
"deviceId": "Raspberry Pi Web Client",
"temperature": 27.796111770668457,
"humidity": 66.77637926438427
},
"applicationProperties": {
"temperatureAlert": "false"
}
}
如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶。
先決條件
在開始本教學課程之前,請先準備下列必要條件。
有效的 Azure 訂用帳戶。
訂用帳戶中的 IoT 中樞。
將溫度資料傳送至 Azure IoT 中樞的用戶端應用程式。 本教學課程會根據名為
temperatureAlert的訊息屬性來篩選裝置到雲端的訊息。 產生具有此屬性的訊息的一些範例包括:- .NET SDK: 模擬裝置
- Java SDK: 發送事件
- Node.js SDK: simple_sample_device
- C SDK: iothub_II_client_shared_sample
- 無代碼: Raspberry Pi 在線模擬器
建立服務匯流排命名空間和佇列
建立服務匯流排命名空間與佇列。 在本文稍後,您將在 IoT 中樞建立路由規則,以將包含溫度警示的訊息導向至服務匯流排佇列。 邏輯應用程式會監視佇列中的傳入訊息,並傳送每個警示的通知。
建立服務匯流排命名空間
在 Azure 入口網站上,使用搜尋列來搜尋並選取 [服務匯流排]。
選取 [ 建立 ] 以建立服務匯流排命名空間。
在 [建立命名空間 ] 窗格中,提供下列資訊:
參數 價值觀 Subscription 選擇包含 IoT 中樞的相同訂用帳戶。 資源群組 選擇包含 IoT 中樞的相同資源群組。 命名空間名稱 為你的服務匯流排命名空間命名。 命名空間在 Azure 中必須是唯一的。 地點 選擇 IoT 中樞使用的相同位置。 定價層 從下拉式清單中選取 [基本 ]。 基本層已足夠用於本教學課程。 選擇 檢閱 + 創建。
選取 ,創建。
等待部署完成,然後選取 [前往資源]。
將服務匯流排佇列新增至命名空間
在服務匯流排命名空間的 [概觀] 頁面上,選取 佇列。
在 名稱 欄位中,提供佇列的名稱。 接受其他欄位的預設值,然後選取 建立。
在您的服務匯流排命名空間中,從資源功能表的 [設定] 區段中選取 [共用存取原則]。
選取 RootManageSharedAccessKey 原則以開啟其詳細數據。
複製 [主要連接字串] 的值,並儲存它,以便在稍後設定邏輯應用程式時在本教學課程中使用。
將自訂端點和路由規則新增至 IoT 中樞
將服務匯流排佇列的自訂端點新增至您的 IoT 中樞。 然後,建立訊息路由規則,將包含溫度警示的訊息導向至該端點,由您的邏輯應用程式挑選。 路由規則會使用路由查詢 temperatureAlert = "true",根據裝置上執行的用戶端程式碼所設定的 temperatureAlert 應用程式屬性值來轉送訊息。 若要深入瞭解,請參閱 以訊息屬性為基礎的訊息路由查詢。
新增自訂端點和路由
在 Azure 入口網站,移至您的 IoT 中樞。
在 [中樞設定] 底下的資源功能表中,選取 [訊息路由],然後選取 [新增]。
在 [端點] 索引標籤上,提供下列資訊,為您的服務匯流排佇列建立端點:
參數 價值觀 端點類型 選取 服務匯流排佇列。 端點名稱 請為對應到您的服務匯流排佇列的新端點提供名稱。 服務總線命名空間 使用下拉式功能表來選取您在上一節中建立的服務匯流排命名空間。 服務匯流排佇列 使用下拉式清單選擇您在命名空間中建立的服務匯流排佇列。
選取 [建立 + 下一步]。
在 [路由] 索引標籤上,輸入下列資訊,以建立指向服務匯流排佇列端點的路由:
參數 價值觀 名稱 提供路線的唯一名稱。 資料來源 保留預設 的裝置遙測訊息 資料來源。 路由查詢 輸入 temperatureAlert = "true"作為查詢字串。
選取 [建立 + 跳過擴充]。
設定邏輯應用程式以發出通知
在上一節中,您已設定 IoT 中樞的路由,將包含溫度警示的訊息傳送至 Service Bus 佇列。 現在,您可以設定邏輯應用程式來監視服務匯流排佇列,並在將訊息新增至佇列時傳送電子郵件通知。
建立邏輯應用程式
在 Azure 入口網站中,搜尋並選取 [邏輯應用程式]。
選取 [ 新增 ] 以建立新的邏輯應用程式。
在 [建立邏輯應用程式] 的 [基本] 索引標籤上輸入下列資訊:
參數 價值觀 資源群組 選取包含 IoT 中樞的相同資源群組。 名稱 提供邏輯應用程式的名稱。 區域 選取您附近的位置。 方案類型 選取 [耗用量],這足以完成本教學課程。
選擇 檢閱 + 創建。
選取 ,創建。
部署完成後,請選取 [ 移至資源 ] 以開啟您的邏輯應用程式。
設定邏輯應用程式觸發器
在 Azure 入口網站的邏輯應用程式資源頁面上,從資源功能表的 [開發工具] 區段開啟邏輯應用程式設計工具。
在設計工具中,向下捲動至 [範本] ,然後選取 [空白邏輯應用程式]。
選取 [全部] 索引標籤以顯示所有連接器和觸發程式,然後選取 [服務匯流排]。
在 [觸發程序] 底下,選取 [當一個或多個訊息到達佇列時 (自動完成)]。
建立服務匯流排連線。
提供 [連線名稱 ],然後貼上您從服務匯流排命名空間複製的 [連接字串 ]。
選取 ,創建。
在下一個螢幕上,使用下拉式選單來選取您在 Service Bus 命名空間中建立的佇列。 然後,輸入
175[訊息計數上限]。
選取邏輯應用程式設計工具功能表上的 [儲存] 以儲存您的變更。
設定邏輯應用程式動作
選取邏輯應用程式設計工具中的 [新增步驟 ]。
建立 SMTP 服務連線。
搜尋並選取 SMTP。
選取 [傳送電子郵件 (V3)] 作為此步驟的動作。
提供 連線名稱,然後在其餘欄位中填寫您要用來傳送通知訊息之電子郵件帳戶的 SMTP 資訊。
使用下列連結來尋找您的 SMTP 資訊,視您的郵件提供者而定:
備註
您可能需要停用 TLS/SSL 才能建立連線。 如果是這種情況,而且您想要在建立連線後重新啟用 TLS,請參閱本節結尾的選用步驟。
選取 ,創建。
設定 傳送電子郵件 動作。
從 新增 引數 下拉式清單中 傳送 電子郵件 步驟,選取下列引數:
- From
- 至
- 主旨
- 身體
按一下或點選螢幕上的任何位置以關閉選取方塊。
輸入您在上一個步驟中選取的電子郵件引數的下列資訊:
參數 價值觀 From 您為 SMTP 連線設定的電子郵件地址。 至 您要傳送通知電子郵件的一或多個電子郵件地址。 主旨 High temperature detected。身體 High temperature detected。如果 新增動態內容 對話方塊開啟,請選取 隱藏 將其 關閉。 在本教學課程中,您不會使用動態內容。
選取 [儲存] 以儲存 SMTP 連線。
(選用)如果您必須停用 TLS 才能與電子郵件提供者建立連線,並想要重新啟用它,請依照下列步驟操作:
在 [邏輯應用程式] 窗格的 [開發工具] 底下,選取 [API 連線]。
從 API 連線清單中,選取 SMTP 連線。
在 [smtp API 連線] 窗格的 [一般] 底下,選取 [編輯 API 連線]。
在 [編輯 API 連線 ] 窗格中,選取 [啟用 SSL?],重新輸入電子郵件帳戶的密碼,然後選取 [ 儲存]。
您的邏輯應用程式現在已準備好處理來自服務匯流排佇列的溫度警示,並將通知傳送至您的電子郵件帳戶。
測試邏輯應用程式
開始從您的 IoT 裝置傳送溫度訊息,以測試監控和通知管道。
在您的裝置上啟動用戶端應用程式。 用戶端程式碼會隨機輸出遙測訊息,並將屬性設定
temperatureAlert為true溫度超過 30 C 時。您應該會開始接收邏輯應用程式所傳送的電子郵件通知。
備註
您的電子郵件服務提供者可能需要驗證寄件者身份,以確保發送電子郵件的是您。
清理資源
如果您不再需要在本教學課程中建立的資源,請刪除它和入口網站中的資源群組。 若要這樣做,請選取包含 IoT 中樞的資源群組,然後選取 [刪除]。
或者,使用 CLI:
# Delete your resource group and its contents
az group delete --name <RESOURCE_GROUP_NAME>
後續步驟
在本教學課程中,您已建立邏輯應用程式,以連線您的 IoT 中樞和信箱,以進行溫度監視和通知。
若要繼續開始使用 Azure IoT 中樞,並探索所有擴充的 IoT 案例,請參閱下列內容: