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.
Sklonuj repozytorium GitHub azure-service-bus lub pobierz plik zip i wyodrębnij z niego pliki.
W programie Visual Studio przejdź do folderu \samples\DotNet\Azure.Messaging.ServiceBus\ServiceBusEventGridIntegrationV2 , a następnie otwórz plik SBEventGridIntegration.sln .
W oknie Eksplorator rozwiązań rozwiń projekt MessageSender i wybierz pozycję Program.cs.
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>";
Skompiluj i uruchom program, aby wysłać 5 komunikatów testowych (
const int numberOfMessages = 5;
) do tematu usługi Service Bus.
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
Otwórz plik ReceiveMessagesOnEvent.cs z projektu FunctionApp1 rozwiązania SBEventGridIntegration.sln.
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.Kliknij prawym przyciskiem myszy pozycję FunctionApp1, a następnie wybierz pozycję Publikuj.
Na stronie Publikowanie wybierz pozycję Uruchom. Te kroki mogą różnić się od tego, co widzisz, ale proces publikowania powinien być podobny.
W kreatorze Publikowanie na stronie Cel wybierz pozycję Azure w polu Cel.
Na określonej stronie docelowej wybierz pozycję Aplikacja funkcji platformy Azure (Windows).
Na stronie Wystąpienie usługi Functions wybierz pozycję Utwórz nową.
Na stronie Aplikacja funkcji (Windows) wykonaj następujące kroki:
- Wprowadź nazwę aplikacji funkcji.
- Wybierz subskrypcję platformy Azure.
- 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.
- Wybierz typ planu dla usługi App Service.
- Wybierz lokalizację. Wybierz tę samą lokalizację co przestrzeń nazw usługi Service Bus.
- 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.
- W polu Application Insights wybierz istniejące wystąpienie usługi Application Insights do skojarzenia z funkcją platformy Azure lub utwórz je.
- Wybierz pozycję Utwórz , aby utworzyć aplikację usługi Functions.
Po powrocie na stronę wystąpienia usługi Functions kreatora publikowania wybierz pozycję Zakończ.
Na stronie Publikowanie w programie Visual Studio wybierz pozycję Publikuj, aby opublikować aplikację usługi Functions na platformie Azure.
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.
Teraz na stronie Publikowanie w sekcji Hosting wybierz pozycję ... (wielokropek), a następnie wybierz pozycję Otwórz w witrynie Azure Portal.
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.
Na stronie Funkcja dla karty EventGridTriggerFunction przejdź do karty Wywołania.
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:
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.
Wybierz pozycję + Subskrypcja zdarzeń na pasku narzędzi.
Na stronie Tworzenie subskrypcji zdarzeń wykonaj następujące czynności:
Wprowadź nazwę subskrypcji.
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.
Wybierz pozycję Funkcja platformy Azure dla pozycji Typ punktu końcowego, a następnie wybierz pozycję Konfiguruj punkt końcowy.
Na stronie Wybieranie funkcji platformy Azure wybierz subskrypcję, grupę zasobów, aplikację funkcji, miejsce i funkcję, a następnie wybierz pozycję Potwierdź wybór.
Na stronie Tworzenie subskrypcji zdarzeń przejdź do karty Filtry i wykonaj następujące zadania:
Przejdź do karty Subskrypcje zdarzeń na stronie Zdarzenia i upewnij się, że subskrypcja zdarzeń jest widoczna 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.
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.
Wybierz wywołanie z listy, aby wyświetlić szczegóły.
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.
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:
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).
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.
Zdarzenia dostarczane są również widoczne na stronie Zdarzenia przestrzeni nazw usługi Service Bus.
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 .
Powiązana zawartość
- Dowiedz się więcej na temat usługi Azure Event Grid.
- Dowiedz się więcej na temat usługi Azure Functions.
- Dowiedz się więcej na temat usługi Azure Service Bus.