Dela via


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.

  1. Klona GitHub azure-service-bus-lagringsplatsen eller ladda ned zip-filen och extrahera filer från den.

  2. I Visual Studio går du till mappen \samples\DotNet\Azure.Messaging.ServiceBus\ServiceBusEventGridIntegrationV2 och öppnar sedan filen SBEventGridIntegration.sln .

  3. I fönstret Solution Explorer expanderar du Projektet MessageSender och väljer Program.cs.

  4. 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>";
    
  5. Skapa och kör programmet för att skicka 5 testmeddelanden (const int numberOfMessages = 5;) till Service Bus-ämnet.

    Konsolappens utdata

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

  1. Öppna ReceiveMessagesOnEvent.cs fil från FunctionApp1-projektet för den SBEventGridIntegration.sln lösningen.

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

  3. Högerklicka på FunctionApp1 och välj Publicera.

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

  5. I guiden Publicera går du till sidan Mål och väljer Azure som mål.

  6. Välj Azure Function App (Windows)sidan Specifikt mål.

  7. På sidan Functions-instans väljer du Skapa en ny Azure-funktion.

    Bild som visar knappen Lägg till funktion i dialogrutan Visual Studio – Publicera.

  8. Följ dessa steg på sidan Funktionsapp (Windows ):

    1. Ange ett namn för funktionsappen.
    2. Välj en Azure-prenumeration.
    3. 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.
    4. Välj en plantyp för App Service.
    5. Välj en plats. Välj samma plats som Service Bus-namnområdet.
    6. Välj en befintlig Azure Storage eller välj Ny för att skapa ett nytt Lagringskonto som ska användas av Functions-appen.
    7. Välj Skapa för att skapa Functions-appen.
  9. På sidan Functions-instans i guiden Publicera väljer du Slutför.

  10. På sidan Publicera i Visual Studio väljer du Publicera för att publicera Functions-appen till Azure.

    Publicera Functions-app

  11. I fönstret Utdata ser du meddelandena från build och publish och bekräftar att båda lyckades.

  12. På sidan Publicera går du till avsnittet Värd och väljer ... (ellips)och välj Hantera i Azure-portalen.

  13. På sidan Funktionsapp i Azure-portalen väljer du Funktioner på den vänstra menyn och bekräftar att du ser två funktioner:

    Skärmbild som visar sidan Funktioner med funktionen Event Grid-utlösare.

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

  15. På sidan Funktion för EventGridTriggerFunction väljer du Övervaka på den vänstra menyn.

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

  17. På sidan Application Insights anger du ett namn för resursen, väljer en plats för resursen och väljer sedan OK.

  18. Välj funktionen EventGridTriggerFunction längst upp (sökvägsmenyn) för att gå tillbaka till sidan Funktion .

  19. Bekräfta att du är på sidan Övervaka .

    Övervaka sidan för funktionen före funktionsanrop

    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:

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

    Service Bus – händelsesida

  2. Välj + Händelseprenumeration i verktygsfältet.

  3. Gör följande på sidan Skapa händelseprenumeration :

    1. Ange ett namn för prenumerationen.

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

    3. Välj Azure-funktion för Slutpunktstyp och välj Välj en slutpunkt.

      Service Bus – Event Grid-prenumeration

    4. På sidan Välj Azure-funktion väljer du prenumerationen, resursgruppen, funktionsappen, facket och funktionen och väljer sedan Bekräfta valet.

      Funktion – välj slutpunkten

    5. På sidan Skapa händelseprenumeration växlar du till fliken Filter och utför följande uppgifter:

      1. Välj Aktivera ämnesfiltrering

      2. Ange namnet på prenumerationen på Service Bus-ämnet (S1) som du skapade tidigare.

      3. Markera knappen Skapa.

        Händelseprenumerationsfilter

  4. Växla till fliken Händelseprenumerationer på sidan Händelser och bekräfta att du ser händelseprenumerationen i listan.

    Händelseprenumeration 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.

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

    Övervaka sidan för funktionen efter anrop

  2. Välj anropet i listan för att se informationen.

    Information om funktionsanrop

    Du kan också använda fliken Loggarsidan Ö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.

    Funktionsloggar

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:

  1. Bekräfta att meddelandena nådde Service Bus-ämnet. Se räknaren för inkommande meddelandensidan 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).

    Service Bus-ämnessida – inkommande meddelanden

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

    Antal aktiva meddelanden i Service Bus-prenumerationen

  3. Du ser även levererade händelsersidan Händelser i Service Bus-namnområdet.

    Sidan Händelser – levererade händelser

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

    Sidan Händelseprenumeration – levererade händelser

Nästa steg