共用方式為


教學課程:使用 Azure 事件方格和 Logic Apps 來傳送 Azure IoT 中樞事件的相關電子郵件通知

Azure Event Grid 可讓您在下游商務應用程式中觸發動作,進而回應 IoT 中樞中的事件。

本文逐步解說使用 IoT 中樞與事件方格的範例組態。 結束時,您會將 Azure 邏輯應用程式設定為在每次裝置與 IoT 中樞連線或中斷連線時傳送通知電子郵件。 事件方格可用來取得重要裝置中斷連線的及時通知。 計量和診斷需要幾分鐘 (例如 20 分鐘或更久),才會顯示在記錄/警示中。 重要基礎結構可能無法接受較長的處理時間。

如果您沒有 Azure 帳戶,請在開始之前建立 免費帳戶

先決條件

  • 來自 Azure Logic Apps 支援的任何電子郵件提供者的電子郵件帳戶,例如 Office 365 Outlook 或 Outlook.com。 這個電子郵件帳戶用來傳送事件通知。

建立 IoT 中樞

您可以使用入口網站中的 Azure Cloud Shell 終端,快速建立新的 IoT 中樞。

  1. 登入 Azure 入口網站

  2. 選取頁面右上方的 [Cloud Shell] 按鈕。

    如何從 Azure 入口網站開啟 Azure Cloud Shell 的螢幕擷取畫面。

  3. 執行下列命令以建立新的資源群組:

    az group create --name {your resource group name} --location westus
    
  4. 執行以下命令來建立 IoT 中樞:

    az iot hub create --name {your iot hub name} --resource-group {your resource group name} --sku S1 
    
  5. 將 Cloud Shell 終端最小化。 您在本教學課程稍後會回到殼層。

建立邏輯應用程式

接下來,建立邏輯應用程式,並新增 HTTP 事件方格觸發程序來處理來自 IoT 中樞的要求。

建立邏輯應用程式資源

  1. Azure 入口網站中,選取 [ 建立資源],然後在搜尋方塊中輸入 “邏輯應用程式”,然後按 Enter。 從結果中選取 [邏輯應用程式]

    如何從資源清單中選取邏輯應用程式的螢幕擷取畫面。

  2. 在下一個畫面上,選取 [建立]

  3. 在 [建立邏輯應用程式] 頁面上,選取 [使用量 (多租用戶)],然後選取 [選取]

  4. 在 [ 建立邏輯應用程式 (多租用戶)] 頁面上,在訂用帳戶中為您的邏輯應用程式提供唯一的名稱,然後選取與 IoT 中樞相同的訂用帳戶、資源群組和位置。

    如何設定邏輯應用程式的螢幕擷取畫面。

  5. 選取 [檢閱 + 建立]

  6. 確認您的設定,然後選取 [建立]

  7. 建立資源之後,選取 [前往資源]

  8. 在資源功能表中,選取 [開發工具] 底下的 [邏輯應用程式範本]。

  9. 在工作窗格中,選擇 [空白工作流程 ] ,以便您可以從空白工作流程開始。

    邏輯應用程式範本的螢幕擷取畫面。

選取觸發程序

觸發程序是啟動邏輯應用程式的特定事件。 在本教學課程中,啟動工作流程的觸發程序會透過 HTTP 接收要求。

  1. 在工作流程設計工具中,選取 [新增觸發程式]

  2. 在連接器和觸發程序搜尋列中,輸入 HTTP

  3. 瀏覽結果並且選取 [要求 - 收到 HTTP 要求時] 作為觸發程序。

    工作流程設計器中「新增觸發器」窗格的螢幕擷取畫面。

  4. 在觸發程式設定方塊中,選取 [ 使用範例承載來產生結構描述]。

    觸發資訊方塊的螢幕擷取畫面。

  5. 複製以下 json 內容,並將預留位置值 <> 取代為您自己的值。

  6. 裝置連線事件結構描述 JSON 貼到 Enter 或貼上範例 JSON 承載。 文字方塊,然後選取 [完成]

      [{  
       "id": "f6bbf8f4-d365-520d-a878-17bf7238abd8",
       "topic": "/SUBSCRIPTIONS/<azure subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>",
       "subject": "devices/LogicAppTestDevice",
       "eventType": "Microsoft.Devices.DeviceConnected",
       "eventTime": "2018-06-02T19:17:44.4383997Z",
       "data": {
           "deviceConnectionStateEventInfo": {
             "sequenceNumber":
               "000000000000000001D4132452F67CE200000002000000000000000000000001"
           },
         "hubName": "<hub name>",
         "deviceId": "LogicAppTestDevice",
         "moduleId" : "DeviceModuleID"
       }, 
       "dataVersion": "1",
       "metadataVersion": "1"
     }]
    

    重要事項

    請務必將 JSON 程式碼片段貼到 [請使用範例承載產生結構描述] 連結提供的方塊中,而不是直接貼到 [要求本文 JSON 結構描述] 方塊中。 範例承載連結可讓您根據 JSON 程式碼片段產生 JSON 內容。 在要求本文中結束的最終 JSON 與 JSON 程式碼片段不同。

    此事件會在裝置連線至 IoT 中樞時發佈。

  7. 在設計師工具列上選取儲存

    附註

    您可能會收到快顯通知,指出「 記得在請求中包含設定為 application/json 的 Content-Type 標頭」。 您可以放心地忽略此建議,並繼續下一節。

  8. 關閉觸發資訊方塊。

建立動作

動作是在觸發程序啟動邏輯應用程式工作流程之後發生的任何步驟。 在本教學課程中,從電子郵件提供者傳送電子郵件通知就是一個動作。

  1. 在設計工具上,選取觸發程式下方的加號 (+),然後選取 [新增動作]。

  2. 在 [ 新增動作 ] 方塊中,搜尋 Outlook

  3. 根據您的電子郵件提供者,尋找並選取相符的連接器。 本教學課程使用 Outlook.com 作為其電子郵件提供者。 若要使用對應的連接器,請選取 Outlook.com 下的 傳送電子郵件 (V2) 動作。 其他電子郵件提供者的步驟很類似。 或者,您可以使用 Office 365 Outlook 略過登入步驟。

    新增動作方塊的螢幕擷取畫面。

  4. 選取 [登入] 並登入您的電子郵件帳戶。 選取 [是] 讓應用程式存取您的資訊。

  5. 建立您的電子郵件範本。

    • 收件者:輸入要收到通知電子郵件的電子郵件地址。 在本教學課程中,使用您可以存取的電子郵件帳戶進行測試。

    • 主旨:填入用於主旨的文字。 當您選取 主旨 文字方塊時,您可以選取文字方塊旁邊顯示的功能圖示,或輸入斜線 (/) 字元,然後選取 插入動態內容 清單 選項以包含動態內容。 例如,本教學課程會使用 IoT Hub alert: {eventType}

    選取 eventType 之後,您會看到目前為止的電子郵件表單輸出。 選取 [傳送電子郵件 (V2)],以編輯電子郵件的本文。

    壓縮本文輸出表單的螢幕擷取畫面。

    • 本文:撰寫電子郵件內容。 從選取器工具選取 JSON 屬性,以根據事件資料納入動態內容。 如果您看不到選取器工具,請選取 [內文] 文字方塊,然後選取文字方塊旁邊顯示的功能圖示,以包含運算式和動態內容。 如果它未顯示您想要的欄位,請在動態內容畫面中選取 查看更多 以包含上一個動作中的欄位。

    您的電子郵件範本可能如下範例所示:

    如何在範本中建立事件電子郵件的螢幕擷取畫面。

  6. 在工作流程設計工具中選取 [儲存]。

複製 HTTP URL

離開工作流程設計工具之前,為觸發程序複製邏輯應用程式正在接聽的 URL。 您可以使用此 URL 來設定 Event Grid。

  1. 透過選取以展開 [接收到 HTTP 要求時] 觸發程序設定方塊。

  2. 選取旁邊的複製按鈕,複製 HTTP URL 的值。

    如何複製觸發程式的 HTTP URL 的螢幕擷取畫面。

  3. 儲存這個 URL,以便在下一節參考它。

設定 IoT 中樞事件的訂用帳戶

在本節中,您會將 IoT 中樞設定為在事件發生時發佈事件。

  1. 在 Azure 入口網站中,瀏覽至您的 IoT 中樞。 您可以從 Azure 儀表板選取 [IoT 中樞],然後從資源清單中選取 IoT 中樞執行個體,以尋找您的 IoT 中樞。

  2. 選取 [事件]

    Azure 入口網站中 IoT 中樞服務功能表的螢幕擷取畫面,醒目提示 [事件] 命令。

  3. 選取 [事件訂用帳戶]

    Azure 入口網站中 IoT 中樞工作窗格的螢幕擷取畫面,醒目提示命令列中的 [事件訂用帳戶] 命令。

  4. 使用下列值來建立事件訂用帳戶:

    1. 在 [事件訂用帳戶詳細資料] 區段中:

      1. 提供事件訂閱的名稱
      2. 針對 [事件結構描述],選取 [事件方格結構描述]
    2. 在 [主題詳細資料] 區段中:

      1. 確認 [主題類型] 已設為 [IoT 中樞]
      2. 確認 IoT 中樞的名稱已設為 [來源資源] 欄位的值。
      3. 輸入要為您建立的 系統主題 的名稱。 若要瞭解系統主題,請參閱 Azure 事件方格中的系統主題
    3. 在 [事件類型] 區段中:

      1. 選取 [篩選至事件類型] 下拉式清單。

      2. 取消選取 [建立的裝置] 和 [刪除的裝置] 核取方塊,只保留選取 [連線的裝置] 和 [中斷連線的裝置] 核取方塊。

        Azure 入口網站中 [建立事件訂用帳戶] 頁面的螢幕擷取畫面,顯示 [事件類型] 區段。

    4. 在 [端點詳細資料] 區段中:

      1. 針對 [端點類型]選取 [Web Hook]
      2. 選取 [ 選取端點],貼上您從邏輯應用程式複製的 URL,然後確認選取。

      Azure 入口網站中 [建立事件訂用帳戶] 頁面的螢幕擷取畫面,顯示 [端點詳細資料] 區段。

      當您完成時,窗格看起來應如下列範例所示:

      Azure 入口網站中 [建立事件訂閱] 頁面的螢幕擷取畫面。

  5. 選取 [建立]

模擬連線和傳送遙測的新裝置

藉由使用 Azure CLI 快速模擬裝置連線,來測試邏輯應用程式。

  1. 選取 [Cloud Shell] 按鈕以重新開啟您的終端。

  2. 執行下列命令以建立模擬的裝置身分識別:

    az iot hub device-identity create --device-id simDevice --hub-name {YourIoTHubName}
    

    處理可能需要一分鐘的時間。 處理完成後,您會在主控台中看到 JSON 列印輸出。

  3. 執行下列命令以模擬將您的裝置連線到 IoT 中樞並且傳送遙測:

    az iot device simulate -d simDevice -n {YourIoTHubName}
    
  4. 當模擬裝置連線到 IoT 中樞時,您會收到一封電子郵件,通知您 「DeviceConnected」 事件。

  5. 模擬完成後,您會收到一封電子郵件,通知您「裝置中斷連線」事件。

    您應該收到電子郵件的螢幕擷取畫面。

清除資源

本教學課程使用了會使您的 Azure 訂用帳戶產生費用的資源。 完成教學課程試用和結果測試時,請停用或刪除不想保留的資源。

若要刪除您在本教學課程中建立的所有資源,請刪除資源群組。

  1. 選取 [資源群組],然後選取您為此教學課程建立的資源群組。

  2. 在 [資源群組] 窗格中,選取 [刪除資源群組]。 系統會提示您輸入資源群組名稱,而後您可將其刪除。 其中包含的所有資源也會一併移除。

後續步驟

如需支援的邏輯應用程式連接器的完整清單,請參閱: