共用方式為


教學課程:使用 Azure Logic Apps 監視 IoT 裝置並傳送通知

使用 Azure Logic Apps,監視來自 IoT 中樞的傳入裝置遙測,並在觸發警示時傳送通知。

End-to-end diagram

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 訂用帳戶,請在開始前建立免費帳戶

必要條件

開始此教學課程之前,請備妥下列必要條件。

建立服務匯流排命名空間與佇列

建立服務匯流排命名空間與佇列。 在本文稍後,您將在 IoT 中樞建立路由規則,以將包含溫度警示的訊息導向至服務匯流排佇列。 邏輯應用程式會監視傳入訊息的佇列,並針對每個警示傳送通知。

建立服務匯流排命名空間

  1. Azure 入口網站上,使用搜尋列來搜尋並選取 [服務匯流排]

  2. 選取 [建立],以建立服務匯流排命名空間。

  3. 在 [建立命名空間] 窗格中,提供下列資訊:

    參數
    訂用帳戶 選擇包含您 IoT 中樞的相同訂用帳戶。
    資源群組 選擇包含您 IoT 中樞的相同資源群組。
    命名空間名稱 為您的服務匯流排命名空間提供名稱。 此命名空間在整個 Azure 中必須是唯一的。
    地點 選擇您 IoT 中樞所使用的相同位置。
    定價層 從下拉式清單中選取 [基本]。 「基本」層足供本教學課程之用。
  4. 選取 [檢閱 + 建立]。

  5. 選取 建立

  6. 等待部署完成,然後選取 [前往資源]

將服務匯流排佇列新增至命名空間

  1. 在服務匯流排命名空間的 [概觀] 頁面上,選取 [佇列]

    Screenshot of the namespace overview page to add a queue.

  2. 在 [名稱] 欄位中,提供佇列的名稱。 接受其他欄位的預設值,然後選取 [建立]

  3. 在服務匯流排命名空間中,從資源功能表的 [設定] 區段中,選取 [共用存取原則]

  4. 選取 [RootManageSharedAccessKey] 原則以開啟其詳細資料。

  5. 複製 [主要連接字串] 的值並加以儲存,當您在此教學課程稍後設定邏輯應用程式時使用。

將自訂端點和路由規則新增到 IoT 中樞

將服務匯流排佇列的自訂端點新增至 IoT 中樞。 然後,建立訊息路由規則,將包含溫度警示的訊息導向至該端點,而邏輯應用程式將在其中挑選這些警示。 路由規則會使用路由查詢 (temperatureAlert = "true"),根據裝置上所執行用戶端程式碼所設定的 temperatureAlert 應用程式屬性值來轉送訊息。 若要深入了解,請參閱根據訊息屬性的訊息路由查詢

新增自訂端點和路由

  1. 在 Azure 入口網站中,移至您的 IoT 中樞。

  2. 在資源功能表的 [中樞設定] 底下,選取 [訊息路由],然後選取 [新增]

    Screenshot that shows location of the Add button, to add a new route in your IoT hub.

  3. 在 [端點] 索引標籤上,提供下列資訊來為服務匯流排佇列建立端點:

    參數
    端點類型 選取 [服務匯流排佇列]
    端點名稱 為對應至服務匯流排佇列的新端點提供名稱。
    服務匯流排命名空間 使用下拉式功能表來選取您在上一節建立的服務匯流排命名空間。
    服務匯流排佇列 使用下拉式功能表來選取您在命名空間中建立的服務匯流排佇列。

    Screenshot that shows how to create a service bus queue endpoint for your route.

  4. 選取 [建立 + 下一步]

  5. 在 [路由] 索引標籤上,輸入下列資訊,以建立指向服務匯流排佇列端點的路由:

    參數
    名稱 為路由提供唯一名稱。
    資料來源 保留預設的裝置遙測訊息資料來源。
    路由查詢 輸入 temperatureAlert = "true" 作為查詢字串。

    Screenshot that shows adding a route with a query.

  6. 選取 [建立 + 略過擴充]

設定 Logic Apps 以進行通知

在上一節中,您已設定 IoT 中樞,將包含溫度警示的訊息路由傳送至您的服務匯流排佇列。 現在,您要設定邏輯應用程式來監視服務匯流排佇列,並在訊息新增至佇列時,傳送電子郵件通知。

建立邏輯應用程式

  1. 在 Azure 入口網站中,搜尋並選取 [Logic Apps]

  2. 選取 [新增] 以建立新的邏輯應用程式。

  3. 在 [建立邏輯應用程式] 的 [基本] 索引標籤上,輸入下列資訊:

    參數
    資源群組 選取包含 IoT 中樞的相同資源群組。
    名稱 為您的邏輯應用程式提供名稱。
    區域 選取您附近的位置。
    方案類型 選取 [取用],這就足以供此教學課程使用。

    Screenshot that shows creating a logic app in the Azure portal.

  4. 選取 [檢閱 + 建立]。

  5. 選取 建立

  6. 部署完成之後,選取 [前往資源],以開啟您的邏輯應用程式。

設定邏輯應用程式觸發程序

  1. 在 Azure 入口網站的邏輯應用程式資源頁面上,從資源功能表的 [開發工具] 區段中,開啟 [邏輯應用程式設計工具]

  2. 在設計工具中,向下捲動至 [範本],然後選取 [空白邏輯應用程式]

    Screenshot that shows selecting the Blank Logic App template.

  3. 選取 [全部] 索引標籤以顯示所有連接器和觸發程序,然後選取 [服務匯流排]

    Select Service Bus to start creating your logic app in the Azure portal.

  4. 在 [觸發程序] 底下,選取 [當一個或多個訊息到達佇列時 (自動完成)]

    Select the trigger for your logic app in the Azure portal.

  5. 建立服務匯流排連接。

    1. 提供連線名稱,然後貼上您稍早從服務匯流排命名空間複製的連接字串

    2. 選取 建立

    3. 在下一個畫面,使用下拉式功能表來選取您在服務匯流排命名空間中建立的佇列。 然後,針對 [訊息計數上限] 輸入 175

      Screenshot that shows configuring queue settings in the Logic app designer.

  6. 在邏輯應用程式設計工具功能表上,選取 [儲存],以儲存您的變更。

設定邏輯應用程式動作

  1. 在邏輯應用程式設計工具中,選取 [新增步驟]

  2. 建立 SMTP 服務連接。

    1. 搜尋並選取 [SMTP]

      Screenshot that shows selecting an SMTP connection in the logic app designer.

    2. 選取 [傳送電子郵件 (V3)] 作為此步驟的動作。

    3. 提供連線名稱,然後使用您要用來傳送通知訊息之電子郵件帳戶的 SMTP 資訊,來填寫其餘欄位。

      根據您的郵件提供者,使用下列連結來尋找 SMTP 資訊:

      注意

      您可能需要停用 TLS/SSL 來建立連線。 如果是這種情況,且您要在建立連線之後重新啟用 TLS,請參閱本節結尾的選擇性步驟。

      Screenshot that shows configuring the SMTP connection settings in the logic app designer.

    4. 選取 建立

  3. 設定 [傳送電子郵件] 動作。

    1. 從 [傳送電子郵件] 步驟上的 [新增參數] 下拉式清單中,選取下列參數:

      • 目標
      • 主體
      • 本文

      按一下或點選畫面上的任何位置,以關閉選取方塊。

      Choose SMTP connection email fields to include in email.

    2. 針對您在上一個步驟中選取的電子郵件參數,輸入下列資訊:

      參數
      您為 SMTP 連線設定的電子郵件地址。
      目標 您要傳送通知電子郵件的一或多個電子郵件地址。
      主體 High temperature detected.
      本文 High temperature detected.

      如果 [新增動態內容] 對話方塊開啟,請選取 [隱藏] 加以關閉。 您不會在此教學課程中使用動態內容。

      Provide details for SMTP connection email fields.

  4. 選取 [儲存] 以儲存 SMTP 連線。

  5. (選擇性) 如果您必須停用 TLS 以建立與電子郵件提供者的連線,並想要將其重新啟用,請遵循下列步驟:

    1. 在 [邏輯應用程式] 窗格上的 [開發工具] 底下,選取 [API 連線]

    2. 從 API 連線清單中,選取 SMTP 連線。

    3. 在 [smtp API 連線] 窗格的 [一般] 底下,選取 [編輯 API 連線]

    4. 在 [編輯 API 連線] 窗格上,選取 [啟用 SSL?]、重新輸入電子郵件帳戶的密碼,然後選取 [儲存]

      Edit SMTP API connection in your logic app in the Azure portal.

邏輯應用程式現在已準備好處理服務匯流排佇列中的溫度警示,並將通知傳送至您的電子郵件帳戶。

測試邏輯應用程式

開始從 IoT 裝置傳送溫度訊息,以測試監視和通知管線。

  1. 在您的裝置上啟動用戶端應用程式。 用戶端程式碼會隨機輸出遙測訊息,並在溫度超過 30 C 時,將 temperatureAlert 屬性設定為 true

  2. 您應該會開始收到邏輯應用程式所傳送的電子郵件通知。

    注意

    您的電子郵件服務提供者可能需要驗證寄件者身分,確定是您傳送電子郵件。

清除資源

如果您不再需要在此教學課程中建立的資源,請在入口網站中刪除該資源及資源群組。 若要這樣做,選取包含您 IoT 中樞的資源群組,然後選取 [刪除]

或者,請使用 CLI:

# Delete your resource group and its contents
az group delete --name <RESOURCE_GROUP_NAME>

下一步

在此教學課程中,您已建立邏輯應用程式來連線 IoT 中樞與信箱,以進行溫度監視和通知。

若要繼續開始使用 Azure IoT 中樞並瀏覽所有其他的 IoT 情節,請參閱下列內容︰