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.
Kloon de GitHub azure-service-bus-opslagplaats of download het zip-bestand en extraheer er bestanden uit.
Ga in Visual Studio naar de map \samples\DotNet\Azure.Messaging.ServiceBus\ServiceBus\ServiceBusEventGridIntegrationV2 en open het bestand SBEventGridIntegration.sln .
Vouw in het venster Solution Explorer het project MessageSender uit en selecteer Program.cs.
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>";
Bouw en voer het programma uit om vijf testberichten (
const int numberOfMessages = 5;
) te verzenden naar het Service Bus-onderwerp.
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
Open het bestand ReceiveMessagesOnEvent.cs in het project FunctionApp1 van de oplossing SBEventGridIntegration.sln.
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.Klik met de rechtermuisknop op FunctionApp1 en selecteer Publiceren.
Selecteer Start op de pagina Publiceren. Deze stappen kunnen afwijken van wat u ziet, maar het publicatieproces moet vergelijkbaar zijn.
Selecteer in de wizard Publiceren op de pagina Doel Azure als het Doel.
Selecteer op de pagina Specifiek doel Azure Function-app (Windows).
Selecteer Nieuwe maken op de pagina Functions-exemplaar.
Voer op de pagina Function-app (Windows) de volgende stappen uit:
- Voer een naam in voor de functie-app.
- Selecteer een Azure-abonnement.
- Selecteer een bestaande resourcegroep of maak een nieuwe. Voor deze zelfstudie selecteert u de resourcegroep die de Service Bus-naamruimte heeft.
- Selecteer een plantype voor App Service.
- Selecteer een locatie. Selecteer dezelfde locatie als voor de Service Bus-naamruimte.
- Selecteer een bestaande Azure Storage of selecteer Nieuw om een nieuwe opslagaccount te maken die moet worden gebruikt door de Functions-app.
- Selecteer voor Application Insights een bestaand Application Insights-exemplaar dat u wilt koppelen aan de Azure-functie of maak er een.
- Selecteer Maken om de Functions-app te maken.
Selecteer op de pagina Functions-exemplaar van de wizard Publiceren de optie Voltooien.
Selecteer op de pagina Publiceren in Visual Studio Publiceren om de Functions-app op Azure te publiceren.
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.
Selecteer nu op de pagina Publiceren in de sectie Hosting de optie ... (beletselteken) en selecteer Openen in Azure Portal.
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.
Schakel op de pagina Functie voor de EventGridTriggerFunction over naar het tabblad Aanroepen.
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:
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.
Selecteer + Gebeurtenisabonnement op de werkbalk.
Voer op de pagina Gebeurtenisabonnement maken de volgende stappen uit:
Voer een naam in voor het abonnement.
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.
Selecteer De Azure-functie voor eindpunttype en kies Een eindpunt configureren.
Selecteer op de pagina Azure Function selecteren het abonnement, de resourcegroep, de functie-app, de sleuf en de functie en selecteer vervolgens Selectie bevestigen.
Ga op de pagina Gebeurtenisabonnement maken naar het tabblad Filters en voer de volgende taken uit:
Ga naar het tabblad Gebeurtenisabonnementen van de pagina Gebeurtenissen en bevestig dat u het gebeurtenisabonnement in de lijst ziet.
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.
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.
Selecteer de aanroep in de lijst om de details weer te geven.
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.
Problemen oplossen
Als u geen functie-aanroepen ziet na enige tijd wachten en vernieuwen, voert u de volgende stappen uit:
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).
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.
U ziet ook geleverde gebeurtenissen op de pagina Gebeurtenissen van de Service Bus-naamruimte.
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.
Gerelateerde inhoud
- Meer informatie over Azure Event Grid.
- Meer informatie over Azure Functions.
- Meer informatie over Azure Service Bus.