Självstudie: Svara på Azure Service Bus-händelser som tas emot via Azure Event Grid med hjälp av Azure Functions
I den här självstudien får du lära dig hur du svarar på Azure Service Bus-händelser som tas emot via Azure Event Grid med hjälp av Azure Functions och Azure Logic Apps.
I den här självstudien lär du dig att:
- Skapa ett namnområde för Service Bus
- Förbereda ett exempelprogram för att skicka meddelanden
- Skicka meddelanden till Service Bus-ämnet
- Ta emot meddelanden med Logic Apps
- Konfigurera en testfunktion i Azure
- Anslut funktionen och namnområdet via Event Grid
- Ta emot meddelanden med Azure Functions
Förutsättningar
Om du inte har en Azure-prenumeration kan du skapa ettkostnadsfritt konto innan du börjar.
Skapa ett namnområde för Service Bus
Följ anvisningarna i den här självstudien: Snabbstart: Använd Azure-portalen för att skapa ett Service Bus-ämne och prenumerationer på ämnet för att utföra följande uppgifter:
- Skapa ett Premium Service Bus-namnområde.
- Hämta anslutningssträng.
- Skapa ett Service Bus-ämne.
- Skapa en prenumeration på ämnet. Du behöver bara en prenumeration i den här självstudien, så du behöver inte skapa prenumerationerna S2 och S3.
Skicka meddelanden till Service Bus-ämnet
I det här steget använder du ett exempelprogram för att skicka meddelanden till det Service Bus-ämne som du skapade i föregående steg.
Klona GitHub azure-service-bus-lagringsplatsen eller ladda ned zip-filen och extrahera filer från den.
I Visual Studio går du till mappen \samples\DotNet\Azure.Messaging.ServiceBus\ServiceBusEventGridIntegrationV2 och öppnar sedan filen SBEventGridIntegration.sln .
I fönstret Solution Explorer expanderar du Projektet MessageSender och väljer Program.cs.
Ersätt
<SERVICE BUS NAMESPACE - CONNECTION STRING>
med anslutningssträng till Service Bus-namnområdet och<TOPIC NAME>
med namnet på ämnet.const string ServiceBusConnectionString = "<SERVICE BUS NAMESPACE - CONNECTION STRING>"; const string TopicName = "<TOPIC NAME>";
Skapa och kör programmet för att skicka 5 testmeddelanden (
const int numberOfMessages = 5;
) till Service Bus-ämnet.
Ytterligare förutsättningar
Installera Visual Studio 2022 och inkludera arbetsbelastningen För Azure-utveckling . Den här arbetsbelastningen innehåller Azure-funktionsverktyg som du behöver för att skapa, skapa och distribuera Azure Functions-projekt i Visual Studio.
Distribuera funktionsappen
Kommentar
Mer information om hur du skapar och distribuerar en Azure Functions-app finns i Utveckla Azure Functions med Visual Studio
Öppna ReceiveMessagesOnEvent.cs fil från FunctionApp1-projektet för den SBEventGridIntegration.sln lösningen.
Ersätt
<SERVICE BUS NAMESPACE - CONNECTION STRING>
med anslutningssträng till Service Bus-namnområdet. Den bör vara samma som den som du använde i Program.cs-filen i MessageSender-projektet i samma lösning.Högerklicka på FunctionApp1 och välj Publicera.
På sidan Publicera väljer du Start. De här stegen kan skilja sig från vad du ser, men publiceringsprocessen bör vara liknande.
I guiden Publicera går du till sidan Mål och väljer Azure som mål.
Välj Azure Function App (Windows) på sidan Specifikt mål.
På sidan Functions-instans väljer du Skapa en ny Azure-funktion.
Följ dessa steg på sidan Funktionsapp (Windows ):
- Ange ett namn för funktionsappen.
- Välj en Azure-prenumeration.
- Välj en befintlig resursgrupp eller skapa en ny resursgrupp. I den här självstudien väljer du den resursgrupp som har Service Bus-namnområdet.
- Välj en plantyp för App Service.
- Välj en plats. Välj samma plats som Service Bus-namnområdet.
- Välj en befintlig Azure Storage eller välj Ny för att skapa ett nytt Lagringskonto som ska användas av Functions-appen.
- Välj Skapa för att skapa Functions-appen.
På sidan Functions-instans i guiden Publicera väljer du Slutför.
På sidan Publicera i Visual Studio väljer du Publicera för att publicera Functions-appen till Azure.
I fönstret Utdata ser du meddelandena från build och publish och bekräftar att båda lyckades.
På sidan Publicera går du till avsnittet Värd och väljer ... (ellips)och välj Hantera i Azure-portalen.
På sidan Funktionsapp i Azure-portalen väljer du Funktioner på den vänstra menyn och bekräftar att du ser två funktioner:
Välj EventGridTriggerFunction i listan. Vi rekommenderar att du använder Event Grid-utlösaren med Azure Functions eftersom den har några fördelar jämfört med att använda HTTP-utlösaren. Mer information finns i Azure-funktionen som händelsehanterare för Event Grid-händelser.
På sidan Funktion för EventGridTriggerFunction väljer du Övervaka på den vänstra menyn.
Välj Konfigurera för att konfigurera Application Insights för att samla in anropsloggen. Du använder den här sidan för att övervaka funktionskörningar när du tar emot Service Bus-händelser från Event Grid.
På sidan Application Insights anger du ett namn för resursen, väljer en plats för resursen och väljer sedan OK.
Välj funktionen EventGridTriggerFunction längst upp (sökvägsmenyn) för att gå tillbaka till sidan Funktion .
Bekräfta att du är på sidan Övervaka .
Håll den här sidan öppen på en flik i webbläsaren. Du uppdaterar den här sidan för att se anrop för den här funktionen senare.
Anslut funktionen och Service Bus-namnområdet via Event Grid
I det här avsnittet kopplar du samman funktionen och Service Bus-namnområdet med hjälp av Azure-portalen.
Följ dessa steg för att skapa en Azure Event Grid-prenumeration:
I Azure-portalen går du till Service Bus-namnområdet och väljer sedan Händelser i den vänstra rutan. Ditt namnområdesfönster öppnas med två Event Grid-prenumerationer i fönstret till höger.
Välj + Händelseprenumeration i verktygsfältet.
Gör följande på sidan Skapa händelseprenumeration :
Ange ett namn för prenumerationen.
Ange ett namn för systemämnet. Systemämnen är ämnen som skapas för Azure-resurser som Azure Storage-konto och Azure Service Bus. Mer information om systemämnen finns i Översikt över systemämnen.
Välj Azure-funktion för Slutpunktstyp och välj Välj en slutpunkt.
På sidan Välj Azure-funktion väljer du prenumerationen, resursgruppen, funktionsappen, facket och funktionen och väljer sedan Bekräfta valet.
På sidan Skapa händelseprenumeration växlar du till fliken Filter och utför följande uppgifter:
Välj Aktivera ämnesfiltrering
Ange namnet på prenumerationen på Service Bus-ämnet (S1) som du skapade tidigare.
Markera knappen Skapa.
Växla till fliken Händelseprenumerationer på sidan Händelser och bekräfta att du ser händelseprenumerationen i listan.
Övervaka Functions-appen
Meddelandena som du skickade till Service Bus-ämnet tidigare vidarebefordras till prenumerationen (S1). Event Grid vidarebefordrar meddelandena i prenumerationen till Azure-funktionen. I det här steget i självstudien bekräftar du att funktionen anropades och visar de loggade informationsmeddelandena.
På sidan för din Azure-funktionsapp växlar du till fliken Övervaka om den inte redan är aktiv. Du bör se en post för varje meddelande som publiceras i Service Bus-ämnet. Om du inte ser dem uppdaterar du sidan efter att ha väntat i några minuter.
Välj anropet i listan för att se informationen.
Du kan också använda fliken Loggar på sidan Övervaka för att se loggningsinformationen när meddelandena skickas. Det kan uppstå en viss fördröjning, så ge det några minuter att se de loggade meddelandena.
Felsöka
Om du inte ser några funktionsanrop efter att ha väntat och uppdaterat någon gång följer du dessa steg:
Bekräfta att meddelandena nådde Service Bus-ämnet. Se räknaren för inkommande meddelanden på sidan Service Bus-ämne . I det här fallet körde jag MessageSender-programmet två gånger, så jag ser 10 meddelanden (5 meddelanden för varje körning).
Bekräfta att det inte finns några aktiva meddelanden i Service Bus-prenumerationen. Om du inte ser några händelser på den här sidan kontrollerar du att service bus-prenumerationssidan inte visar något antal aktiva meddelanden. Om talet för den här räknaren är större än noll vidarebefordras inte meddelandena i prenumerationen till hanteringsfunktionen (händelseprenumerationshanteraren) av någon anledning. Kontrollera att du har konfigurerat händelseprenumerationen korrekt.
Du ser även levererade händelser på sidan Händelser i Service Bus-namnområdet.
Du kan också se att händelserna levereras på sidan Händelseprenumeration . Du kan komma till den här sidan genom att välja händelseprenumerationen på sidan Händelser .
Nästa steg
- Läs mer om Azure Event Grid.
- Läs mer om Azure Functions.
- Läs mer om Logic Apps-funktionen i Azure App Service.
- Läs mer om Azure Service Bus.