共用方式為


教學課程:使用 Azure Logic Apps,回應使用 Azure 事件方格接收到的 Azure 服務匯流排事件

在本教學課程中,您將瞭解如何使用 Azure Logic Apps 回應使用 Azure 事件方格接收的 Azure 服務總線事件。

先決條件

如果您還沒有 Azure 訂閱,請在開始前建立免費帳戶。

建立服務匯流排命名空間

請遵循下列教學課程中的指示:快速入門:使用 Azure 入口網站建立服務匯流排主題和主題的訂用帳戶,以執行下列工作:

  • 建立進階服務匯流排命名空間。
  • 取得連接字串。
  • 建立服務匯流排主題。
  • 針對主題建立訂用帳戶。 在本教學課程中,您只需要一個訂用帳戶,因此不需要建立訂用帳戶 S2 和 S3。

對服務匯流排主題傳送訊息

在本節中,您會使用範例應用程式,將訊息傳送至您在上一節中建立的服務總線主題。

  1. 複製 GitHub azure-service-bus 存放庫,或下載 ZIP 檔案並從中擷取檔案。

  2. 在 Visual Studio 中,移至 \samples\DotNet\Azure.Messaging.ServiceBus\ServiceBusEventGridIntegrationV2 資料夾,然後開啟 SBEventGridIntegration.sln 檔案。

  3. 在 [ 方案總管] 視窗中,展開 MessageSender 專案,然後選取 [Program.cs]。

  4. <SERVICE BUS NAMESPACE - CONNECTION STRING> 取代為服務匯流排命名空間的連接字串;同時將 <TOPIC NAME> 取代為主題名稱。

    const string ServiceBusConnectionString = "<SERVICE BUS NAMESPACE - CONNECTION STRING>";
    const string TopicName = "<TOPIC NAME>";
    
  5. 建置並執行程式,以將五個測試訊息 (const int numberOfMessages = 5;) 傳送至服務總線主題。

    此螢幕快照顯示主控台應用程式輸出,並傳送 5 則訊息。

使用 Logic Apps 接收訊息

在本節中,建立使用 Azure 事件方格接收服務總線事件的 Azure 邏輯應用程式。

  1. 選取 [+ 建立資源],選取 [ 整合],然後選取 [ 邏輯應用程式]。

    顯示 [建立資源] > [整合] > [邏輯應用程式] 功能表的螢幕擷取畫面。

  2. 在 [ 建立邏輯應用程式 ] 頁面上,遵循下列步驟:

    1. 選取 [取用]>[多租用戶] 選項,然後選擇 [選取]

    2. 選取您的 Azure 訂用帳戶

    3. 輸入 資源群組。 選取您用於其他資源的資源群組,例如您稍早建立的服務總線命名空間。

    4. 輸入邏輯應用程式的名稱。

    5. 選取邏輯應用程式的區域

    6. 按一下 檢閱 + 建立

      顯示 [建立邏輯應用程式] 頁面的螢幕快照。

    7. 在 [ 檢閱 + 建立] 頁面上,選取 [ 建立 ] 以建立邏輯應用程式。

  3. 在 [ 部署完成 ] 頁面上,選取 [移至資源] 以瀏覽至 邏輯應用程式 頁面。

使用事件方格新增從服務總線接收訊息的步驟

  1. 展開 [開發工具 ],然後選取 [邏輯應用程式範本]。

    顯示 [邏輯應用程式設計工具] 頁面的螢幕擷取畫面,其中已選取 [空白工作流程] 選項。

  2. 選取 [空白工作流程]。 邏輯應用程式設計工具隨即開啟。

  3. 在設計工具上執行下列步驟:

    1. 選取 [新增觸發程式 ],然後搜尋 [事件方格]。

    2. 選取 [當資源事件發生時]

      顯示 Logic Apps 設計工具的螢幕擷取畫面,其中已選取事件方格觸發程序。

  4. 選取 登入

    顯示 Logic Apps 設計工具的螢幕擷取畫面,其中已選取 [登入] 按鈕。

  5. 在 [ 登入您的帳戶 ] 頁面上,選取您想要用來登入 Azure 的帳戶。

  6. 在 [ 發生資源事件時] 頁面上,執行下列步驟:

    1. 針對 [資源類型],選取 [Microsoft.ServiceBus.Namespaces]。

    2. 選取您的 Azure 訂用帳戶。

    3. 針對 [資源名稱],選取您的服務總線命名空間。

    4. 在 [ 進階參數] 下,選取向下箭號。

    5. 選取 [後置詞篩選],然後將焦點移至下拉式清單外。

      顯示新增後綴篩選類型之新參數的螢幕快照。

    6. 在 [尾碼篩選] 中,輸入服務匯流排主題訂用帳戶的名稱。

      顯示 Logic Apps 設計工具與服務總線命名空間連線設定的螢幕快照。

  7. 選取符號 + ,然後選取 [新增動作]。

    1. 搜尋服務匯流排

      顯示選取服務匯流排的螢幕擷取畫面。

    2. 選取 [查看更多],然後選取 [從主題訂閱取得訊息 (peek-lock)]。

      顯示 Logic Apps 設計工具的螢幕擷圖,當中「從主題訂閱取得訊息」已被選取。

    3. 請遵循下列步驟:

      1. 輸入連接的名稱 例如: 從主題訂用帳戶取得訊息

      2. 確認 [驗證類型 ] 設定為 [存取金鑰]。

      3. 針對 [連接字串],將連接字串複製並貼到您稍早儲存的服務總線命名空間。

      4. 請選擇 新建

        顯示 Logic Apps 設計工具的螢幕快照,其中包含指定的 Service Bus 連接字串。

    4. 選取您的主題和訂用帳戶。

      顯示 Logic Apps 設計工具的螢幕擷取畫面,其中已指定服務匯流排主題和訂用帳戶。

新增處理和完成已接收訊息的步驟

在本節中,您會新增步驟以在電子郵件中傳送已接收的郵件,然後完成郵件。 在真實案例中,您會在邏輯應用程式中處理訊息,再完成訊息。

新增 foreach 迴圈

  1. 選取符號 + ,然後選取 [新增動作]。

  2. 搜尋並選取 [For each]

    顯示已選取 [For-each] 作業的螢幕擷取畫面。

  3. 針對 [選取先前步驟中的輸出] 選取閃電圖示,或輸入 / 然後選取 [插入動態內容]

  4. 在 [從主題訂用帳戶取得訊息 (查看鎖定)] 底下選取 [本文]

    顯示選取了 For each 輸入的螢幕擷取畫面。

在 foreach 循環內新增步驟,以傳送包含訊息內文的電子郵件

  1. For Each 循環中,選取 +,然後選取 [新增動作]。

    顯示在 For-each 迴圈中選取了 + 按鈕的螢幕擷取畫面。

  2. 搜尋 Office 365,然後選取 [查看更多]。

  3. 在搜尋結果中選取 [Office 365 Outlook ]。

    顯示 Office 365 選取項目的螢幕快照。

  4. 在動作清單中,選取 [傳送電子郵件][V2]。

    顯示 [傳送電子郵件作業] 選項的螢幕快照。

  5. 選取 [登入],然後遵循步驟建立 Office 365 Outlook 的連線。

  6. 在 [ 傳送電子郵件 (V2)] 視窗中,遵循下列步驟:

  7. 選取 [本文] 的文字方塊,然後遵循下列步驟:

    1. 針對 [收件者],請輸入電子郵件地址。

    2. 針對 [主旨],請輸入從服務匯流排主題的訂用帳戶收到的訊息

    3. Body 中,選取表達式或輸入 /,然後選取 [插入表達式]。

    4. 輸入下列表示式:

      base64ToString(items('For_each')?['ContentData'])
      
    5. 選取 ,然後新增

      此螢幕擷取畫面顯示 [傳送電子郵件] 活動的 [本文] 的運算式。

在 foreach 迴圈中新增另一個動作以完成訊息

  1. For Each 循環中,選取 +,然後選取 [新增動作]。

    1. 搜尋服務匯流排

    2. 從動作清單中選取 完成主題訂閱中的訊息

      顯示在主題訂用帳戶中選取 [完成訊息] 的螢幕擷取畫面。

    3. 選取您的服務匯流排主題。

    4. 選擇訂閱該主題。

    5. [訊息的鎖定令牌] 中,選取表達式或輸入 / ,然後選取 [插入表達式]。

    6. 選取 [動態內容 ],然後選取 [ 鎖定令牌]。 選取 ,然後新增

      顯示鎖定令牌欄位的螢幕快照。

  2. 在 Logic Apps 設計工具的工具列上選取 [ 儲存 ],以儲存邏輯應用程式。

    此螢幕擷取畫面顯示邏輯應用程式設計工具中的 [儲存] 按鈕。

測試應用程式

  1. 如果您尚未將測試訊息傳送至主題,請遵循 將訊息傳送至服務總線主題 一節中的指示,將訊息傳送至主題。

  2. 瀏覽至邏輯應用程式的 [ 概觀 ] 頁面。 然後選取底部窗格中的 [ 執行歷程記錄 ] 索引標籤。 您會看到邏輯應用程式在處理傳送至主題的訊息。 在看到邏輯應用程式執行之前,可能需要幾分鐘的時間。 選取工具列上的 [ 重新 整理] 以重新整理頁面。

    顯示邏輯應用程式執行歷程記錄的螢幕快照。

  3. 選取邏輯應用程式執行以查看詳細數據。 請注意,它在 for 循環中處理了五則訊息。

    顯示所選邏輯應用程式執行詳細資料的螢幕快照。

  4. 您應該會收到邏輯應用程式所接收的每則訊息的電子郵件。

    Outlook 的螢幕快照,其中包含從主題訂用帳戶收到的訊息。

故障排除

如果您在等候並重新整理後並未看到任何叫用,請執行下列步驟:

  1. 確認訊息已抵達服務匯流排主題。 查看 [服務匯流排主題] 頁面上的 [傳入訊息] 計數器。 在此情況下, MessageSender 應用程式會執行一次,因此有 5 則訊息。

    顯示 [服務匯流排主題] 頁面的螢幕擷取畫面,其中已選取內送郵件計數。

  2. 確認服務匯流排訂用帳戶中沒有任何作用中訊息。

    如果您在此頁面上未看到任何事件,請確認 [服務匯流排訂用帳戶] 頁面未顯示任何 [作用中訊息計數]。 如果此計數器的數字大於零,表示訂用帳戶的訊息因故無法轉送至處理常式函式 (事件訂用帳戶處理常式)。 確認您已正確設定事件訂用帳戶。

    顯示 [服務匯流排訂用帳戶] 頁面的螢幕擷取畫面,其中已選取作用中訊息計數。

  3. 您也會在服務匯流排命名空間的 [事件] 頁面上看到 [已傳遞的事件]

    顯示服務總線命名空間頁面 [事件] 頁面的螢幕快照。

  4. 您也可以在 [事件訂用帳戶] 頁面上看到事件已傳遞。 您可以在 [事件] 頁面上選取事件訂用帳戶,以進入此頁面。

    顯示 [事件訂用帳戶] 頁面的螢幕擷取畫面,其中已選取傳遞的事件計數。