教學課程:使用 Azure Logic Apps,回應透過 Azure 事件方格接收到的 Azure 服務匯流排事件
在本教學課程中,您將了解如何使用 Azure Logic Apps 來回應透過 Azure 事件方格接收到的 Azure 服務匯流排事件。
必要條件
如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶。
建立服務匯流排命名空間
請遵循下列教學課程中的指示:快速入門:使用 Azure 入口網站建立服務匯流排主題和主題的訂用帳戶,以執行下列工作:
- 建立進階服務匯流排命名空間。
- 取得連接字串。
- 建立服務匯流排主題。
- 針對主題建立訂用帳戶。 在本教學課程中,您只需要一個訂用帳戶,因此不需要建立訂用帳戶 S2 和 S3。
對服務匯流排主題傳送訊息
在此步驟中,您會使用範例應用程式,將訊息傳送至您在上一個步驟中建立的服務匯流排主題。
複製 GitHub azure-service-bus 存放庫,或下載 ZIP 檔案並從中擷取檔案。
在 Visual Studio 中,移至 \samples\DotNet\Azure.Messaging.ServiceBus\ServiceBusEventGridIntegrationV2 資料夾,然後開啟 SBEventGridIntegration.sln 檔案。
在方案總管視窗中,展開 MessageSender 專案,然後選取 [Program.cs]。
將
<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;
) 傳送至服務匯流排主題。
使用 Logic Apps 接收訊息
在此步驟中,您會建立 Azure 邏輯應用程式,以透過 Azure 事件方格接收服務匯流排事件。
依序選取 [+ 建立資源]、[整合] 和 [邏輯應用程式]。
在建立邏輯應用程式頁面上,遵循下列步驟:
- 選取您的 Azure 訂用帳戶。
- 在 [資源群組] 中選取 [使用現有項目],然後選取要用於稍早所建立其他資源 (例如 Azure 函式、服務匯流排命名空間) 的資源群組。
- 輸入邏輯應用程式的名稱。
- 選取邏輯應用程式的區域。
- 針對方案類型,選取使用量。
- 選取 [檢閱 + 建立] 。
- 在 [檢閱 + 建立] 頁面上選取 [建立],以建立邏輯應用程式。
在部署完成頁面上,選取移至資源以瀏覽至邏輯應用程式頁面。
在 [Logic Apps 設計工具] 頁面上,選取 [範本] 底下的 [空白邏輯應用程式]。
透過事件方格新增從服務匯流排接收訊息的步驟
在邏輯應用程式頁面上,選取左側功能表上的邏輯應用程式設計工具。
在右側面板的範本底下,選取空白邏輯應用程式。
在設計工具上執行下列步驟:
搜尋事件方格。
選取 [發生資源事件時 - Azure 事件方格]。
選取 [登入]。
在登入您的帳戶頁面上,選取您想要用來登入 Azure 的帳戶。 1.
在 [發生資源事件時] 頁面上,執行下列步驟:
選取 Azure 訂閱。
在 [資源類型] 中,選取 [Microsoft.ServiceBus.Namespaces]。
在 [資源名稱] 中,選取您的服務匯流排命名空間。
選取 [新增參數]、選取 [尾碼篩選],然後將焦點移至下拉式清單外部。
在 [尾碼篩選] 中,輸入服務匯流排主題訂用帳戶的名稱。
在設計工具中選取 [+ 新增步驟],然後執行下列步驟:
搜尋服務匯流排。
在清單中選取 [服務匯流排]。
在 [動作] 清單中針對 [取得訊息] 進行選取。
選取 [從主題訂用帳戶取得訊息 (查看鎖定)]。
執行下列步驟:
輸入連線的名稱。 例如:從主題訂用帳戶取得訊息。
確認驗證類型設定為存取金鑰。
針對連接字串,請將連接字串複製並貼到您稍早儲存的服務匯流排命名空間。
選取 建立。
選取您的主題和訂用帳戶。
新增步驟以處理和完成已接收的訊息
在此步驟中,新增在電子郵件中傳送已接收訊息的步驟,然後完成訊息。 在真實世界的案例中,必須先處理邏輯應用程式中的訊息,才能完成訊息。
新增 foreach 迴圈
選取 + 新步驟。
搜尋控制項,然後加以選取。
在 [動作] 清單中,選取 [For each]。
針對 [選取先前步驟的輸出] (視需要按一下文字方塊),請選取 [從主題訂用帳戶取得訊息 (查看鎖定)] 底下的 [本文]。
在 foreach 迴圈內新增步驟,以傳送含有訊息本文的電子郵件
在 For Each 迴圈中,選取 [新增動作]。
在 [搜尋連接器與動作] 文字方塊中,輸入 Office 365。
在搜尋結果中選取 [Office 365 Outlook]。
在動作清單中,選取 [傳送電子郵件 (V2)]。
選取登入,然後遵循步驟以建立連向 Office 365 Outlook 的連線。
在 [傳送電子郵件 (V2)] 視窗中,遵循下列步驟:
選取 [本文] 的文字方塊,然後遵循下列步驟:
針對 [收件者],請輸入電子郵件地址。
針對 [主旨],請輸入從服務匯流排主題的訂用帳戶收到的訊息。
切換至運算式。
輸入下列運算式:
base64ToString(items('For_each')?['ContentData'])
選取 [確定]。
在 foreach 迴圈中新增另一個動作以完成訊息
在 For Each 迴圈中,選取 [新增動作]。
在 [最近] 清單中選取 [服務匯流排]。
從動作清單中,選取 [完成主題訂用帳戶中的訊息]。
選取您的服務匯流排主題。
選取主題的訂用帳戶。
在 [訊息的鎖定權杖] 中,從 [動態內容] 選取 [鎖定權杖]。
在 Logic Apps 設計工具的工具列上選取 [儲存],以儲存邏輯應用程式。
測試應用程式
如果您尚未將測試訊息傳送至主題,請依照對服務匯流排主題傳送訊息一節中的指示,將訊息傳送至主題。
切換至邏輯應用程式的 [概觀] 頁面,然後切換至底部窗格中的 [執行歷程記錄] 索引標籤。 您會看到邏輯應用程式執行傳送至主題的訊息。 可能需要幾分鐘的時間,您才會看到邏輯應用程式執行。 選取工具列上的 [重新整理],以重新整理頁面。
選取邏輯應用程式執行以查看詳細資料。 您可以看到它在 For 迴圈中處理了 5 則訊息。
您應該會收到邏輯應用程式所接收的每則訊息的電子郵件。
疑難排解
如果您在等候並重新整理後並未看到任何叫用,請執行下列步驟:
確認訊息已抵達服務匯流排主題。 查看 [服務匯流排主題] 頁面上的 [傳入訊息] 計數器。 在此案例中,我執行了 MessageSender 應用程式 1次,因此我看到 5 則訊息。
確認服務匯流排訂用帳戶中沒有任何作用中訊息。 如果您在此頁面上未看到任何事件,請確認 [服務匯流排訂用帳戶] 頁面未顯示任何 [作用中訊息計數]。 如果此計數器的數字大於零,表示訂用帳戶的訊息因故無法轉送至處理常式函式 (事件訂用帳戶處理常式)。 請確認您已正確設定事件訂用帳戶。
您也會在服務匯流排命名空間的 [事件] 頁面上看到 [已傳遞的事件]。
您也可以在 [事件訂用帳戶] 頁面上看到事件已傳遞。 您可以在 [事件] 頁面上選取事件訂用帳戶,以進入此頁面。
下一步
- 深入了解 Azure Event Grid。
- 深入了解 Azure Functions。
- 深入了解 Azure App Service 的 Logic Apps 功能。
- 深入了解 Azure 服務匯流排。