Samouczek: reagowanie na zdarzenia usługi Azure Service Bus odebrane za pośrednictwem usługi Azure Event Grid przy użyciu usługi Azure Functions

Z tego samouczka dowiesz się, jak reagować na zdarzenia usługi Azure Service Bus odbierane za pośrednictwem usługi Azure Event Grid przy użyciu usług Azure Functions i Azure Logic Apps.

Z tego samouczka dowiesz się, jak wykonywać następujące czynności:

  • Tworzenie przestrzeni nazw usługi Service Bus
  • Przygotowywanie przykładowej aplikacji do wysyłania komunikatów
  • Wysyłanie komunikatów do tematu usługi Service Bus
  • Odbieranie komunikatów za pomocą usługi Logic Apps
  • Konfigurowanie funkcji testowej na platformie Azure
  • Łączenie funkcji i przestrzeni nazw za pomocą usługi Event Grid
  • Odbieranie komunikatów przy użyciu usługi Azure Functions

Wymagania wstępne

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Tworzenie przestrzeni nazw usługi Service Bus

Postępuj zgodnie z instrukcjami w tym samouczku: Szybki start: tworzenie tematu i subskrypcji usługi Service Bus w witrynie Azure Portal w celu wykonania następujących zadań:

  • Utwórz przestrzeń nazw usługi Service Bus w warstwie Premium .
  • Pobierz parametry połączenia.
  • Utwórz temat usługi Service Bus.
  • Utwórz subskrypcję tematu. W tym samouczku potrzebujesz tylko jednej subskrypcji, więc nie trzeba tworzyć subskrypcji S2 i S3.

Wysyłanie komunikatów do tematu usługi Service Bus

W tym kroku użyjesz przykładowej aplikacji do wysyłania komunikatów do tematu usługi Service Bus utworzonego w poprzednim kroku.

  1. Sklonuj repozytorium GitHub azure-service-bus lub pobierz plik zip i wyodrębnij z niego pliki.

  2. W programie Visual Studio przejdź do folderu \samples\DotNet\Azure.Messaging.ServiceBus\ServiceBusEventGridIntegrationV2 , a następnie otwórz plik SBEventGridIntegration.sln .

  3. W oknie Eksplorator rozwiązań rozwiń projekt MessageSender i wybierz pozycję Program.cs.

  4. Zastąp <SERVICE BUS NAMESPACE - CONNECTION STRING> ciąg parametry połączenia przestrzeni nazw usługi Service Bus i <TOPIC NAME> nazwą tematu.

    const string ServiceBusConnectionString = "<SERVICE BUS NAMESPACE - CONNECTION STRING>";
    const string TopicName = "<TOPIC NAME>";
    
  5. Skompiluj i uruchom program, aby wysłać 5 komunikatów testowych (const int numberOfMessages = 5;) do tematu usługi Service Bus.

    Dane wyjściowe aplikacji konsolowej

Dodatkowe wymagania wstępne

Zainstaluj program Visual Studio 2022 i dołącz pakiet roboczy Programowanie na platformie Azure. To obciążenie obejmuje narzędzia funkcji platformy Azure potrzebne do tworzenia, kompilowania i wdrażania projektów usługi Azure Functions w programie Visual Studio.

Wdrażanie aplikacji funkcji

Uwaga

Aby dowiedzieć się więcej na temat tworzenia i wdrażania aplikacji usługi Azure Functions, zobacz Tworzenie usługi Azure Functions przy użyciu programu Visual Studio

  1. Otwórz plik ReceiveMessagesOnEvent.cs z projektu FunctionApp1 rozwiązania SBEventGridIntegration.sln.

  2. Zastąp <SERVICE BUS NAMESPACE - CONNECTION STRING> ciąg parametry połączenia przestrzenią nazw usługi Service Bus. Powinna być taka sama jak użyta w pliku Program.cs projektu MessageSender w tym samym rozwiązaniu.

  3. Kliknij prawym przyciskiem myszy pozycję FunctionApp1, a następnie wybierz pozycję Publikuj.

  4. Na stronie Publikowanie wybierz pozycję Uruchom. Te kroki mogą różnić się od tego, co widzisz, ale proces publikowania powinien być podobny.

  5. W kreatorze Publikowanie na stronie Cel wybierz pozycję Azure w polu Cel.

  6. Na określonej stronie docelowej wybierz pozycję Aplikacja funkcji platformy Azure (Windows).

  7. Na stronie Wystąpienie usługi Functions wybierz pozycję Utwórz nową funkcję platformy Azure.

    Obraz przedstawiający przycisk Dodaj funkcję w oknie dialogowym Visual Studio — publikowanie.

  8. Na stronie Aplikacja funkcji (Windows) wykonaj następujące kroki:

    1. Wprowadź nazwę aplikacji funkcji.
    2. Wybierz subskrypcję platformy Azure.
    3. Wybierz istniejącą grupę zasobów lub utwórz nową grupę zasobów. Na potrzeby tego samouczka wybierz grupę zasobów, która ma przestrzeń nazw usługi Service Bus.
    4. Wybierz typ planu dla usługi App Service.
    5. Wybierz lokalizację. Wybierz tę samą lokalizację co przestrzeń nazw usługi Service Bus.
    6. Wybierz istniejącą usługę Azure Storage lub wybierz pozycję Nowy , aby utworzyć nowe konto magazynu, które ma być używane przez aplikację usługi Functions.
    7. Wybierz pozycję Utwórz , aby utworzyć aplikację usługi Functions.
  9. Po powrocie na stronę wystąpienia usługi Functions kreatora publikowania wybierz pozycję Zakończ.

  10. Na stronie Publikowanie w programie Visual Studio wybierz pozycję Publikuj, aby opublikować aplikację usługi Functions na platformie Azure.

    Publikowanie aplikacji usługi Functions

  11. W oknie Dane wyjściowe zobacz komunikaty z kompilacji i publikowania i upewnij się, że oba te komunikaty zakończyły się powodzeniem.

  12. Teraz na stronie Publikowanie w sekcji Hosting wybierz pozycję ... (wielokropek) i wybierz pozycję Zarządzaj w witrynie Azure Portal.

  13. W witrynie Azure Portal na stronie Aplikacja funkcji wybierz pozycję Funkcje w menu po lewej stronie i upewnij się, że są widoczne dwie funkcje:

    Zrzut ekranu przedstawiający stronę Funkcje z funkcją Wyzwalacz usługi Event Grid.

  14. Wybierz pozycję EventGridTriggerFunction z listy. Zalecamy użycie wyzwalacza usługi Event Grid z usługą Azure Functions, ponieważ ma kilka korzyści z używania wyzwalacza HTTP. Aby uzyskać szczegółowe informacje, zobacz Funkcja platformy Azure jako procedura obsługi zdarzeń dla zdarzeń usługi Event Grid.

  15. Na stronie Funkcja dla funkcji EventGridTriggerFunction wybierz pozycję Monitor w menu po lewej stronie.

  16. Wybierz pozycję Konfiguruj, aby skonfigurować Szczegółowe informacje aplikacji do przechwytywania dziennika wywołań. Ta strona służy do monitorowania wykonań funkcji po otrzymaniu zdarzeń usługi Service Bus z usługi Event Grid.

  17. Na stronie Aplikacja Szczegółowe informacje wprowadź nazwę zasobu, wybierz lokalizację zasobu, a następnie wybierz przycisk OK.

  18. Wybierz funkcję EventGridTriggerFunction u góry (menu do stron nadrzędnych), aby wrócić do strony Funkcja .

  19. Upewnij się, że na stronie Monitorowanie .

    Strona monitorowania funkcji przed wywołaniami funkcji

    Pozostaw tę stronę otwartą na karcie przeglądarki internetowej. Odświeżysz tę stronę, aby zobaczyć wywołania dla tej funkcji później.

Połączenie funkcji i przestrzeni nazw usługi Service Bus za pośrednictwem usługi Event Grid

W tej sekcji połączysz funkcję i przestrzeń nazw usługi Service Bus przy użyciu witryny Azure Portal.

Aby utworzyć subskrypcję usługi Azure Event Grid, wykonaj następujące kroki:

  1. W witrynie Azure Portal przejdź do przestrzeni nazw usługi Service Bus, a następnie w okienku po lewej stronie wybierz pozycję Zdarzenia. Zostanie otwarte okno przestrzeni nazw z dwiema subskrypcjami usługi Event Grid wyświetlonymi w okienku po prawej stronie.

    Service Bus — strona zdarzeń

  2. Wybierz pozycję + Subskrypcja zdarzeń na pasku narzędzi.

  3. Na stronie Tworzenie subskrypcji zdarzeń wykonaj następujące czynności:

    1. Wprowadź nazwę subskrypcji.

    2. Wprowadź nazwę tematu systemowego. Tematy systemowe to tematy tworzone dla zasobów platformy Azure, takich jak konto usługi Azure Storage i usługa Azure Service Bus. Aby dowiedzieć się więcej na temat tematów systemowych, zobacz Omówienie tematów systemowych.

    3. Wybierz pozycję Funkcja platformy Azure dla pozycji Typ punktu końcowego, a następnie wybierz pozycję Wybierz punkt końcowy.

      Service Bus — subskrypcja usługi Event Grid

    4. Na stronie Wybieranie funkcji platformy Azure wybierz subskrypcję, grupę zasobów, aplikację funkcji, miejsce i funkcję, a następnie wybierz pozycję Potwierdź wybór.

      Funkcja — wybieranie punktu końcowego

    5. Na stronie Tworzenie subskrypcji zdarzeń przejdź do karty Filtry i wykonaj następujące zadania:

      1. Wybierz pozycję Włącz filtrowanie tematów

      2. Wprowadź nazwę subskrypcji utworzonego wcześniej tematu usługi Service Bus (S1).

      3. Zaznacz przycisk Utwórz.

        Filtr subskrypcji zdarzeń

  4. Przejdź do karty Subskrypcje zdarzeń na stronie Zdarzenia i upewnij się, że subskrypcja zdarzeń jest widoczna na liście.

    Subskrypcja zdarzeń na liście

Monitorowanie aplikacji usługi Functions

Komunikaty wysłane wcześniej do tematu usługi Service Bus są przekazywane do subskrypcji (S1). Usługa Event Grid przekazuje komunikaty w subskrypcji do funkcji platformy Azure. W tym kroku samouczka potwierdzisz wywołanie funkcji i wyświetlenie zarejestrowanych komunikatów informacyjnych.

  1. Na stronie aplikacji funkcji platformy Azure przejdź do karty Monitorowanie , jeśli nie jest jeszcze aktywna. Powinien zostać wyświetlony wpis dla każdego komunikatu opublikowanego w temacie usługi Service Bus. Jeśli ich nie widzisz, odśwież stronę po odczekaniu kilku minut.

    Strona monitorowania funkcji po wywołaniach

  2. Wybierz wywołanie z listy, aby wyświetlić szczegóły.

    Szczegóły wywołania funkcji

    Możesz również użyć karty Dzienniki na stronie Monitorowanie, aby wyświetlić informacje rejestrowania podczas wysyłania komunikatów. Może wystąpić pewne opóźnienie, więc poczekaj kilka minut, aby zobaczyć zarejestrowane komunikaty.

    Dzienniki funkcji

Rozwiązywanie problemów

Jeśli nie widzisz żadnych wywołań funkcji po odczekaniu i odświeżeniu na jakiś czas, wykonaj następujące kroki:

  1. Upewnij się, że komunikaty dotarły do tematu usługi Service Bus. Zobacz licznik komunikatów przychodzących na stronie Temat usługi Service Bus. W tym przypadku dwukrotnie uruchomiono aplikację MessageSender , więc widzę 10 komunikatów (5 komunikatów dla każdego przebiegu).

    Strona tematu usługi Service Bus — komunikaty przychodzące

  2. Upewnij się, że w subskrypcji usługi Service Bus nie ma aktywnych komunikatów . Jeśli na tej stronie nie widzisz żadnych zdarzeń, sprawdź, czy na stronie Subskrypcji usługi Service Bus nie jest wyświetlana żadna liczba aktywnych komunikatów. Jeśli liczba tego licznika jest większa niż zero, komunikaty w subskrypcji nie są przekazywane do funkcji obsługi (program obsługi zdarzeń) z jakiegoś powodu. Sprawdź, czy subskrypcja zdarzeń została prawidłowo skonfigurowana.

    Liczba aktywnych komunikatów w subskrypcji usługi Service Bus

  3. Zdarzenia dostarczane są również widoczne na stronie Zdarzenia przestrzeni nazw usługi Service Bus.

    Strona zdarzeń — dostarczane zdarzenia

  4. Możesz również zobaczyć, że zdarzenia są dostarczane na stronie Subskrypcja zdarzeń. Możesz przejść do tej strony, wybierając subskrypcję zdarzeń na stronie Zdarzenia .

    Strona subskrypcji zdarzeń — zdarzenia dostarczane

Następne kroki