使用 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 情節,請參閱下列內容︰