Udostępnij za pośrednictwem


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ą.

    Zrzut ekranu 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. W polu Application Insights wybierz istniejące wystąpienie usługi Application Insights do skojarzenia z funkcją platformy Azure lub utwórz je.
    8. 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.

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

    Jeśli publikowanie zakończy się niepowodzeniem z powodu problemu z uwierzytelnianiem, upewnij się, że opcja Publikowania podstawowego uwierzytelniania SCM jest włączona dla aplikacji usługi Azure Functions.

    Zrzut ekranu przedstawiający włączoną opcję publikowania uwierzytelniania podstawowego SCM.

  12. Teraz na stronie Publikowanie w sekcji Hosting wybierz pozycję ... (wielokropek), a następnie wybierz pozycję Otwórz w witrynie Azure Portal.

    Zrzut ekranu przedstawiający stronę Publikowanie w programie Visual Studio.

  13. W witrynie Azure Portal na stronie Aplikacja funkcji 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.

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

  14. Na stronie Funkcja dla karty EventGridTriggerFunction przejdź do karty Wywołania.

    Zrzut ekranu przedstawiający stronę wywołania funkcji Wyzwalacz usługi Event Grid.

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

Łą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.

    Zrzut ekranu przedstawiający stronę Zdarzenia dla przestrzeni nazw usługi Service Bus.

  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ę Konfiguruj punkt końcowy.

      Zrzut ekranu przedstawiający stronę Tworzenie subskrypcji zdarzeń dla przestrzeni nazw usługi Service Bus.

    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.

      Zrzut ekranu przedstawiający wybór punktu końcowego funkcji platformy Azure.

    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. Na poniższym zrzucie ekranu nazwa subskrypcji to mysub.

      3. Zaznacz przycisk Utwórz.

        Zrzut ekranu przedstawiający stronę Filtry subskrypcji zdarzeń.

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

    Zrzut ekranu przedstawiający subskrypcje zdarzeń dla przestrzeni nazw usługi Service Bus.

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 Wywołania , 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.

    Zrzut ekranu przedstawiający stronę Wywołania funkcji po wywołaniach.

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

    Zrzut ekranu przedstawiający szczegóły wywołania funkcji.

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

    Zrzut ekranu przedstawiający kartę Dzienniki dla funkcji platformy Azure.

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).

    Zrzut ekranu przedstawiający stronę 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.

    Zrzut ekranu przedstawiający liczbę 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.

    Zrzut ekranu przedstawiający liczbę dostarczonych zdarzeń.

  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 .

    Zrzut ekranu przedstawiający stronę Subskrypcji zdarzeń — dostarczone zdarzenia.