Delen via


Zelfstudie: Reageren op Azure Service Bus-gebeurtenissen die zijn ontvangen via Azure Event Grid met behulp van Azure Functions

In deze zelfstudie leert u hoe u kunt reageren op Azure Service Bus-gebeurtenissen die via Azure Event Grid worden ontvangen met behulp van Azure Functions en Azure Logic Apps.

In deze zelfstudie leert u het volgende:

  • Een Service Bus-naamruimte maken
  • Een voorbeeldtoepassing voorbereiden om berichten te verzenden
  • Berichten kunt verzenden naar Service Bus-onderwerp
  • Berichten ontvangen met behulp van Logic Apps
  • Een test kunt instellen op Azure
  • Functie en naamruimte met elkaar verbinden via Event Grid
  • Berichten ontvangen met behulp van Azure Functions

Vereisten

Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.

Een Service Bus-naamruimte maken

Volg de instructies in deze zelfstudie: Quickstart: Gebruik Azure Portal om een Service Bus-onderwerp en abonnementen voor het onderwerp te maken om de volgende taken uit te voeren:

  • Een premium Service Bus-naamruimte maken.
  • Haal de verbindingsreeks op.
  • Een Service Bus-onderwerp maken.
  • Een abonnement op het onderwerp maken. In deze zelfstudie hebt u slechts één abonnement nodig. U hoeft de abonnementen S2 en S3 dus niet te maken.

Berichten kunt verzenden naar Service Bus-onderwerp

In deze stap gebruikt u een voorbeeldtoepassing om berichten te verzenden naar het Service Bus-onderwerp dat u in de vorige stap hebt gemaakt.

  1. Kloon de GitHub azure-service-bus-opslagplaats of download het zip-bestand en extraheer er bestanden uit.

  2. Ga in Visual Studio naar de map \samples\DotNet\Azure.Messaging.ServiceBus\ServiceBus\ServiceBusEventGridIntegrationV2 en open het bestand SBEventGridIntegration.sln .

  3. Vouw in het venster Solution Explorer het project MessageSender uit en selecteer Program.cs.

  4. Vervang <SERVICE BUS NAMESPACE - CONNECTION STRING> door de verbindingstekenreeks voor uw Service Bus-naamruimte en <TOPIC NAME> door de naam van het onderwerp.

    const string ServiceBusConnectionString = "<SERVICE BUS NAMESPACE - CONNECTION STRING>";
    const string TopicName = "<TOPIC NAME>";
    
  5. Bouw en voer het programma uit om vijf testberichten (const int numberOfMessages = 5;) te verzenden naar het Service Bus-onderwerp.

    Uitvoer console-app

Aanvullende vereisten

Installeer Visual Studio 2022 en neem de Azure-ontwikkelworkload op. Deze workload bevat Azure Function-hulpprogramma’s die u nodig hebt voor het maken, bouwen en implementeren van Azure Functions-projecten in Visual Studio.

De functie-app implementeren

Notitie

Zie Ontwikkelen van Azure Functions met Visual Studio voor meer informatie over het maken en implementeren van een Azure Functions-app

  1. Open het bestand ReceiveMessagesOnEvent.cs in het project FunctionApp1 van de oplossing SBEventGridIntegration.sln.

  2. Vervang <SERVICE BUS NAMESPACE - CONNECTION STRING> door de verbindingstekenreeks voor uw Service Bus-naamruimte. Dit moet hetzelfde zijn als wat u hebt gebruikt in het bestand Program.cs van het project MessageSender in dezelfde oplossing.

  3. Klik met de rechtermuisknop op FunctionApp1 en selecteer Publiceren.

  4. Selecteer Start op de pagina Publiceren. Deze stappen kunnen afwijken van wat u ziet, maar het publicatieproces moet vergelijkbaar zijn.

  5. Selecteer in de wizard Publiceren op de pagina Doel Azure als het Doel.

  6. Selecteer op de pagina Specifiek doel Azure Function-app (Windows).

  7. Selecteer Nieuwe maken op de pagina Functions-exemplaar.

    Schermopname van de knop Functie toevoegen van het dialoogvenster Visual Studio - Publiceren.

  8. Voer op de pagina Function-app (Windows) de volgende stappen uit:

    1. Voer een naam in voor de functie-app.
    2. Selecteer een Azure-abonnement.
    3. Selecteer een bestaande resourcegroep of maak een nieuwe. Voor deze zelfstudie selecteert u de resourcegroep die de Service Bus-naamruimte heeft.
    4. Selecteer een plantype voor App Service.
    5. Selecteer een locatie. Selecteer dezelfde locatie als voor de Service Bus-naamruimte.
    6. Selecteer een bestaande Azure Storage of selecteer Nieuw om een nieuwe opslagaccount te maken die moet worden gebruikt door de Functions-app.
    7. Selecteer voor Application Insights een bestaand Application Insights-exemplaar dat u wilt koppelen aan de Azure-functie of maak er een.
    8. Selecteer Maken om de Functions-app te maken.
  9. Selecteer op de pagina Functions-exemplaar van de wizard Publiceren de optie Voltooien.

  10. Selecteer op de pagina Publiceren in Visual Studio Publiceren om de Functions-app op Azure te publiceren.

  11. Bekijk in het venster Uitvoer de berichten van het maken en publiceren en bevestig dat beide zijn geslaagd.

    Als het publiceren mislukt met een verificatieprobleem, controleert u of de SCM Basic Authentication Publishing-optie is ingeschakeld voor de Azure Functions-app.

    Schermopname van de optie SCM Basic Authentication Publishing ingeschakeld.

  12. Selecteer nu op de pagina Publiceren in de sectie Hosting de optie ... (beletselteken) en selecteer Openen in Azure Portal.

    Schermopname van de pagina Publiceren in Visual Studio.

  13. Selecteer EventGridTriggerFunction in azure Portal op de pagina Functie-app in de lijst. U wordt aangeraden de Event Grid-trigger te gebruiken met Azure Functions omdat deze een aantal voordelen heeft ten opzichte van de HTTP-trigger. Zie Azure-functie als gebeurtenis-handler voor Event Grid-gebeurtenissen voor meer informatie.

    Schermopname van de pagina Functies met de functie Event Grid-trigger.

  14. Schakel op de pagina Functie voor de EventGridTriggerFunction over naar het tabblad Aanroepen.

    Schermopname van de aanroeppagina van een Event Grid-triggerfunctie.

    Laat deze pagina geopend op een tabblad van uw webbrowser. U gaat deze pagina later vernieuwen om de aanroepen voor deze functie te zien.

De functie en de Service Bus-naamruimte verbinden via Event Grid

In deze sectie koppelt u de functie en de Service Bus-naamruimte met behulp van de Azure Portal.

Volg de volgende stappen als u een Azure Event Grid-abonnement wilt maken:

  1. Ga in Azure Portal naar uw Service Bus-naamruimte en selecteer vervolgens in het linkerdeelvenster Gebeurtenissen. Het venster met de naamruimte wordt geopend, waarbij twee Event Grid-abonnementen in het rechterdeelvenster worden weergegeven.

    Schermopname van de pagina Gebeurtenissen voor een Service Bus-naamruimte.

  2. Selecteer + Gebeurtenisabonnement op de werkbalk.

  3. Voer op de pagina Gebeurtenisabonnement maken de volgende stappen uit:

    1. Voer een naam in voor het abonnement.

    2. Voer een naam in voor het systeemonderwerp. Systeemonderwerpen zijn onderwerpen die zijn gemaakt voor Azure-resources, zoals Azure Storage-account en Azure Service Bus. Zie Overzicht van systeemonderwerpen voor meer informatie over systeemonderwerpen.

    3. Selecteer De Azure-functie voor eindpunttype en kies Een eindpunt configureren.

      Schermopname van de pagina Gebeurtenisabonnement maken voor een Service Bus-naamruimte.

    4. Selecteer op de pagina Azure Function selecteren het abonnement, de resourcegroep, de functie-app, de sleuf en de functie en selecteer vervolgens Selectie bevestigen.

      Schermopname van de selectie van een Azure-functie-eindpunt.

    5. Ga op de pagina Gebeurtenisabonnement maken naar het tabblad Filters en voer de volgende taken uit:

      1. Selecteer Filteren van onderwerpen inschakelen.

      2. Voer de naam van het abonnement in voor het Service Bus-onderwerp dat u eerder hebt gemaakt. In de volgende schermopname is mysubde naam van het abonnement.

      3. Selecteer de knop Maken.

        Schermopname van de pagina Filters van een gebeurtenisabonnement.

  4. Ga naar het tabblad Gebeurtenisabonnementen van de pagina Gebeurtenissen en bevestig dat u het gebeurtenisabonnement in de lijst ziet.

    Schermopname van de gebeurtenisabonnementen voor de Service Bus-naamruimte.

De Functions-app controleren

De berichten die u eerder naar het Service Bus-onderwerp hebt verzonden, worden doorgestuurd naar het abonnement (S1). Event Grid stuurt de berichten bij het abonnement door naar de Azure-functie. In deze stap van de zelfstudie bevestigt u dat de functie is aangeroepen en bekijkt u de vastgelegde informatieberichten.

  1. Schakel op de pagina voor uw Azure-functie-app over naar het tabblad Aanroepen als deze nog niet actief is. U zou een vermelding moeten zien voor elk bericht dat is gepost in het Microsoft Azure Service Bus-onderwerp. Als u deze niet ziet, vernieuwt u de pagina nadat u een paar minuten hebt gewacht.

    Schermopname van de pagina Aanroepen voor de functie na aanroepen.

  2. Selecteer de aanroep in de lijst om de details weer te geven.

    Schermopname van de aanroepdetails van de functie.

    U kunt ook het tabblad Logboeken gebruiken om de logboekgegevens te zien terwijl de berichten worden verzonden. Er kan enige vertraging optreden, dus geef het een paar minuten om de vastgelegde berichten te zien.

    Schermopname van het tabblad Logboeken voor een Azure-functie.

Problemen oplossen

Als u geen functie-aanroepen ziet na enige tijd wachten en vernieuwen, voert u de volgende stappen uit:

  1. Controleer of de berichten het Service Bus-onderwerp hebben bereikt. Zie de inkomende berichtenteller op de pagina Service Bus-onderwerp. In dit geval heb ik de MessageSender -toepassing twee keer uitgevoerd, dus ik zie 10 berichten (5 berichten voor elke uitvoering).

    Schermopname van de pagina Service Bus-onderwerp - inkomende berichten.

  2. Controleer of er geen actieve berichten bij het Service Bus-abonnement staan. Als u geen gebeurtenissen op deze pagina ziet, controleert u of op de pagina Service Bus-abonnement geen actieve berichtentelling weergeeft. Als het aantal voor deze teller groter is dan nul, worden de berichten bij het abonnement om de een of andere reden niet doorgestuurd naar de handler-functie (handler voor gebeurtenisabonnement). Controleer of u het gebeurtenisabonnement op de juiste manier hebt ingesteld.

    Schermopname van het aantal actieve berichten in het Service Bus-abonnement.

  3. U ziet ook geleverde gebeurtenissen op de pagina Gebeurtenissen van de Service Bus-naamruimte.

    Schermopname van het aantal afgeleverde gebeurtenissen.

  4. U kunt ook zien dat de gebeurtenissen worden afgeleverd op de pagina Gebeurtenisabonnement. U kunt deze pagina openen door het gebeurtenisabonnement te selecteren op de pagina Gebeurtenissen.

    Schermopname van de pagina Gebeurtenisabonnement - afgeleverde gebeurtenissen.