教學課程:使用 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. 建置並執行程式,以將 5 個測試訊息 (const int numberOfMessages = 5;) 傳送至服務匯流排主題。

    主控台應用程式輸出

使用 Logic Apps 接收訊息

在此步驟中,您會建立 Azure 邏輯應用程式,以透過 Azure 事件方格接收服務匯流排事件。

  1. 依序選取 [+ 建立資源]、[整合] 和 [邏輯應用程式]

    顯示 [建立資源 - 整合 ->> 邏輯應用程式] 功能表的螢幕快照。

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

    1. 選取您的 Azure 訂用帳戶
    2. 在 [資源群組] 中選取 [使用現有項目],然後選取要用於稍早所建立其他資源 (例如 Azure 函式、服務匯流排命名空間) 的資源群組。
    3. 輸入邏輯應用程式的名稱
    4. 選取邏輯應用程式的區域
    5. 針對方案類型,選取使用量
    6. 選取 [檢閱 + 建立] 。 顯示 [建立邏輯應用程式] 頁面的螢幕快照。
    7. 在 [檢閱 + 建立] 頁面上選取 [建立],以建立邏輯應用程式。
  3. 部署完成頁面上,選取移至資源以瀏覽至邏輯應用程式頁面。

  4. 在 [Logic Apps 設計工具] 頁面上,選取 [範本] 底下的 [空白邏輯應用程式]

透過事件方格新增從服務匯流排接收訊息的步驟

  1. 邏輯應用程式頁面上,選取左側功能表上的邏輯應用程式設計工具

  2. 在右側面板的範本底下,選取空白邏輯應用程式

    顯示 [邏輯應用程式設計工具] 頁面的螢幕快照,並已選取 [空白邏輯應用程式] 選項。

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

    1. 搜尋事件方格

    2. 選取 [發生資源事件時 - Azure 事件方格]

      顯示已選取事件方格觸發程式的Logic Apps設計工具螢幕快照。

  4. 選取 [登入]

    顯示已選取 [登入] 按鈕的Logic Apps 設計工具螢幕快照。

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

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

    1. 選取 Azure 訂閱。

    2. 在 [資源類型] 中,選取 [Microsoft.ServiceBus.Namespaces]

    3. 在 [資源名稱] 中,選取您的服務匯流排命名空間。

    4. 選取 [新增參數]、選取 [尾碼篩選],然後將焦點移至下拉式清單外部。

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

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

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

  7. 在設計工具中選取 [+ 新增步驟],然後執行下列步驟:

    1. 搜尋服務匯流排

    2. 在清單中選取 [服務匯流排]

      顯示選取 服務匯流排的螢幕快照。

    3. 在 [動作] 清單中針對 [取得訊息] 進行選取。

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

      顯示 Logic Apps 設計工具的螢幕快照,其中包含已選取主題訂用帳戶的 [取得訊息]。

    5. 執行下列步驟:

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

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

      3. 針對連接字串,請將連接字串複製並貼到您稍早儲存的服務匯流排命名空間。

      4. 選取 建立

        顯示 Logic Apps 設計工具的螢幕快照,其中包含指定的 服務匯流排 連接字串。

    6. 選取您的主題訂用帳戶

      顯示 Logic Apps 設計工具的螢幕快照,其中包含指定的 服務匯流排 主題和訂用帳戶。

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

在此步驟中,新增在電子郵件中傳送已接收訊息的步驟,然後完成訊息。 在真實世界的案例中,必須先處理邏輯應用程式中的訊息,才能完成訊息。

新增 foreach 迴圈

  1. 選取 + 新步驟

  2. 搜尋控制項,然後加以選取。

    顯示 [控件] 類別的螢幕快照。

  3. 在 [動作] 清單中,選取 [For each]

    顯示已選取 [針對每個作業] 的螢幕快照。

  4. 針對 [選取先前步驟的輸出] (視需要按一下文字方塊),請選取 [從主題訂用帳戶取得訊息 (查看鎖定)] 底下的 [本文]

    顯示 [針對每個輸入] 選項的螢幕快照。

在 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. 切換至運算式

    4. 輸入下列運算式:

      base64ToString(items('For_each')?['ContentData'])
      
    5. 選取 [確定]。

      顯示 [傳送電子郵件] 活動的 [內文] 表達式的螢幕快照。

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

  1. For Each 迴圈中,選取 [新增動作]

    1. 在 [最近] 清單中選取 [服務匯流排]

    2. 從動作清單中,選取 [完成主題訂用帳戶中的訊息]

      顯示選取 [完成主題訂用帳戶中訊息] 的螢幕快照。

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

    4. 選取主題的訂用帳戶

    5. 在 [訊息的鎖定權杖] 中,從 [動態內容] 選取 [鎖定權杖]

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

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

    顯示設計邏輯應用程式中 [儲存] 按鈕的螢幕快照。

測試應用程式

  1. 如果您尚未將測試訊息傳送至主題,請依照對服務匯流排主題傳送訊息一節中的指示,將訊息傳送至主題。

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

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

  3. 選取邏輯應用程式執行以查看詳細資料。 您可以看到它在 For 迴圈中處理了 5 則訊息。

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

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

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

疑難排解

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

  1. 確認訊息已抵達服務匯流排主題。 查看 [服務匯流排主題] 頁面上的 [傳入訊息] 計數器。 在此案例中,我執行了 MessageSender 應用程式 1次,因此我看到 5 則訊息。

    顯示已選取內送訊息計數 服務匯流排 主題頁面的螢幕快照。

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

    此螢幕快照顯示已選取作用中訊息計數的 [服務匯流排 訂閱] 頁面。

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

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

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

    顯示 [事件訂閱] 頁面的螢幕快照,其中包含已選取傳遞的事件計數。

下一步