教學課程:使用 Azure Logic Apps 監視 IoT 裝置並傳送通知
使用 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:SimulatedDevice
- Java SDK:send-event
- Node.js SDK:simple_sample_device
- C SDK:iothub_II_client_shared_sample
- 無程式碼:Raspberry Pi 線上模擬器
建立服務匯流排命名空間與佇列
建立服務匯流排命名空間與佇列。 在本文稍後,您將在 IoT 中樞建立路由規則,以將包含溫度警示的訊息導向至服務匯流排佇列。 邏輯應用程式會監視傳入訊息的佇列,並針對每個警示傳送通知。
建立服務匯流排命名空間
在 Azure 入口網站上,使用搜尋列來搜尋並選取 [服務匯流排]。
選取 [建立],以建立服務匯流排命名空間。
在 [建立命名空間] 窗格中,提供下列資訊:
參數 值 訂用帳戶 選擇包含您 IoT 中樞的相同訂用帳戶。 資源群組 選擇包含您 IoT 中樞的相同資源群組。 命名空間名稱 為您的服務匯流排命名空間提供名稱。 此命名空間在整個 Azure 中必須是唯一的。 地點 選擇您 IoT 中樞所使用的相同位置。 定價層 從下拉式清單中選取 [基本]。 「基本」層足供本教學課程之用。 選取 [檢閱 + 建立]。
選取 建立。
等待部署完成,然後選取 [前往資源]。
將服務匯流排佇列新增至命名空間
在服務匯流排命名空間的 [概觀] 頁面上,選取 [佇列]。
在 [名稱] 欄位中,提供佇列的名稱。 接受其他欄位的預設值,然後選取 [建立]。
在服務匯流排命名空間中,從資源功能表的 [設定] 區段中,選取 [共用存取原則]。
選取 [RootManageSharedAccessKey] 原則以開啟其詳細資料。
複製 [主要連接字串] 的值並加以儲存,當您在此教學課程稍後設定邏輯應用程式時使用。
將自訂端點和路由規則新增到 IoT 中樞
將服務匯流排佇列的自訂端點新增至 IoT 中樞。 然後,建立訊息路由規則,將包含溫度警示的訊息導向至該端點,而邏輯應用程式將在其中挑選這些警示。 路由規則會使用路由查詢 (temperatureAlert = "true"
),根據裝置上所執行用戶端程式碼所設定的 temperatureAlert
應用程式屬性值來轉送訊息。 若要深入了解,請參閱根據訊息屬性的訊息路由查詢。
新增自訂端點和路由
在 Azure 入口網站中,移至您的 IoT 中樞。
在資源功能表的 [中樞設定] 底下,選取 [訊息路由],然後選取 [新增]。
在 [端點] 索引標籤上,提供下列資訊來為服務匯流排佇列建立端點:
參數 值 端點類型 選取 [服務匯流排佇列]。 端點名稱 為對應至服務匯流排佇列的新端點提供名稱。 服務匯流排命名空間 使用下拉式功能表來選取您在上一節建立的服務匯流排命名空間。 服務匯流排佇列 使用下拉式功能表來選取您在命名空間中建立的服務匯流排佇列。 選取 [建立 + 下一步]。
在 [路由] 索引標籤上,輸入下列資訊,以建立指向服務匯流排佇列端點的路由:
參數 值 名稱 為路由提供唯一名稱。 資料來源 保留預設的裝置遙測訊息資料來源。 路由查詢 輸入 temperatureAlert = "true"
作為查詢字串。選取 [建立 + 略過擴充]。
設定 Logic Apps 以進行通知
在上一節中,您已設定 IoT 中樞,將包含溫度警示的訊息路由傳送至您的服務匯流排佇列。 現在,您要設定邏輯應用程式來監視服務匯流排佇列,並在訊息新增至佇列時,傳送電子郵件通知。
建立邏輯應用程式
在 Azure 入口網站中,搜尋並選取 [Logic Apps]。
選取 [新增] 以建立新的邏輯應用程式。
在 [建立邏輯應用程式] 的 [基本] 索引標籤上,輸入下列資訊:
參數 值 資源群組 選取包含 IoT 中樞的相同資源群組。 名稱 為您的邏輯應用程式提供名稱。 區域 選取您附近的位置。 方案類型 選取 [取用],這就足以供此教學課程使用。 選取 [檢閱 + 建立]。
選取 建立。
部署完成之後,選取 [前往資源],以開啟您的邏輯應用程式。
設定邏輯應用程式觸發程序
在 Azure 入口網站的邏輯應用程式資源頁面上,從資源功能表的 [開發工具] 區段中,開啟 [邏輯應用程式設計工具]。
在設計工具中,向下捲動至 [範本],然後選取 [空白邏輯應用程式]。
選取 [全部] 索引標籤以顯示所有連接器和觸發程序,然後選取 [服務匯流排]。
在 [觸發程序] 底下,選取 [當一個或多個訊息到達佇列時 (自動完成)]。
建立服務匯流排連接。
提供連線名稱,然後貼上您稍早從服務匯流排命名空間複製的連接字串。
選取 建立。
在下一個畫面,使用下拉式功能表來選取您在服務匯流排命名空間中建立的佇列。 然後,針對 [訊息計數上限] 輸入
175
。
在邏輯應用程式設計工具功能表上,選取 [儲存],以儲存您的變更。
設定邏輯應用程式動作
在邏輯應用程式設計工具中,選取 [新增步驟]。
建立 SMTP 服務連接。
搜尋並選取 [SMTP]。
選取 [傳送電子郵件 (V3)] 作為此步驟的動作。
提供連線名稱,然後使用您要用來傳送通知訊息之電子郵件帳戶的 SMTP 資訊,來填寫其餘欄位。
根據您的郵件提供者,使用下列連結來尋找 SMTP 資訊:
注意
您可能需要停用 TLS/SSL 來建立連線。 如果是這種情況,且您要在建立連線之後重新啟用 TLS,請參閱本節結尾的選擇性步驟。
選取 建立。
設定 [傳送電子郵件] 動作。
從 [傳送電子郵件] 步驟上的 [新增參數] 下拉式清單中,選取下列參數:
- 從
- 目標
- 主體
- 本文
按一下或點選畫面上的任何位置,以關閉選取方塊。
針對您在上一個步驟中選取的電子郵件參數,輸入下列資訊:
參數 值 從 您為 SMTP 連線設定的電子郵件地址。 目標 您要傳送通知電子郵件的一或多個電子郵件地址。 主體 High temperature detected
.本文 High temperature detected
.如果 [新增動態內容] 對話方塊開啟,請選取 [隱藏] 加以關閉。 您不會在此教學課程中使用動態內容。
選取 [儲存] 以儲存 SMTP 連線。
(選擇性) 如果您必須停用 TLS 以建立與電子郵件提供者的連線,並想要將其重新啟用,請遵循下列步驟:
在 [邏輯應用程式] 窗格上的 [開發工具] 底下,選取 [API 連線]。
從 API 連線清單中,選取 SMTP 連線。
在 [smtp API 連線] 窗格的 [一般] 底下,選取 [編輯 API 連線]。
在 [編輯 API 連線] 窗格上,選取 [啟用 SSL?]、重新輸入電子郵件帳戶的密碼,然後選取 [儲存]。
邏輯應用程式現在已準備好處理服務匯流排佇列中的溫度警示,並將通知傳送至您的電子郵件帳戶。
測試邏輯應用程式
開始從 IoT 裝置傳送溫度訊息,以測試監視和通知管線。
在您的裝置上啟動用戶端應用程式。 用戶端程式碼會隨機輸出遙測訊息,並在溫度超過 30 C 時,將
temperatureAlert
屬性設定為true
。您應該會開始收到邏輯應用程式所傳送的電子郵件通知。
注意
您的電子郵件服務提供者可能需要驗證寄件者身分,確定是您傳送電子郵件。
清除資源
如果您不再需要在此教學課程中建立的資源,請在入口網站中刪除該資源及資源群組。 若要這樣做,選取包含您 IoT 中樞的資源群組,然後選取 [刪除]。
或者,請使用 CLI:
# Delete your resource group and its contents
az group delete --name <RESOURCE_GROUP_NAME>
下一步
在此教學課程中,您已建立邏輯應用程式來連線 IoT 中樞與信箱,以進行溫度監視和通知。
若要繼續開始使用 Azure IoT 中樞並瀏覽所有其他的 IoT 情節,請參閱下列內容︰