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

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 Logic Apps.

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

Berichten ontvangen met behulp van Logic Apps

In deze stap maakt u een Azure Logic-app die Service Bus-gebeurtenissen ontvangt via Azure Event Grid.

  1. Selecteer + Een resource maken, selecteer Integratie en selecteer Logische app.

    Schermopname van het menu Een resource maken -> Integratie -> Logische app.

  2. Voer op de pagina Logische app maken de volgende stappen uit:

    1. Selecteer uw Azure-abonnement.
    2. Selecteer Bestaande gebruiken voor de Resourcegroep en selecteer de resourcegroep die u hebt gebruikt voor andere resources (zoals Azure-functie, Service Bus-naamruimte) die u eerder hebt gemaakt.
    3. Voer een naam in voor de logische app.
    4. Selecteer de regio voor de logische app.
    5. Selecteer Verbruik bij Type abonnement.
    6. Selecteer Controleren + maken. Schermopname van de pagina Een logische app maken.
    7. Selecteer Maken op de pagina Beoordelen en maken op de logische app te maken.
  3. Selecteer op de pagina Implementatie voltooid de optie Ga naar de resource om naar de pagina logische app te navigeren.

  4. Op de pagina Ontwerper van logische apps selecteert u Lege logische app onder Sjablonen.

Een stap toevoegen die berichten ontvangt van Service Bus via Event Grid

  1. Selecteer op de pagina logische app de ontwerpfunctie voor logische apps in het linkermenu.

  2. Selecteer in het rechterdeelvenster onder Sjablonen lege logische app.

    Schermopname van de ontwerppagina van logische apps met de optie Lege logische app geselecteerd.

  3. Voer in de ontwerper de volgende stappen uit:

    1. Zoek naar Event Grid.

    2. Selecteer Wanneer een resourcegebeurtenis optreedt - Azure Event Grid.

      Schermopname van logic apps Designer met Event Grid-trigger geselecteerd.

  4. Selecteer Aanmelden.

    Schermopname van logic apps Designer met de knop Aanmelden geselecteerd.

  5. Selecteer op de pagina Aanmelden bij uw account het account dat u wilt gebruiken om u aan te melden bij Azure. 1.

  6. Voer de volgende stappen uit op de pagina Wanneer een resourcegebeurtenis zich voordoet:

    1. Selecteer uw Azure-abonnement.

    2. Voor Resourcetype selecteert u Microsoft.ServiceBus.Namespaces.

    3. Voor Resourcenaam selecteert u uw Service Bus-naamruimte.

    4. Selecteer Nieuwe parameter toevoegen, selecteer Achtervoegselfilter en verplaats vervolgens de focus buiten de vervolgkeuzelijst.

      Schermopname van het toevoegen van een nieuwe parameter van het type Achtervoegselfilter.

    5. Voer voor achtervoegselfilter de naam in van uw Service Bus-onderwerpabonnement.

      Schermopname van logic apps Designer met verbindingsconfiguratie voor de Service Bus-naamruimte.

  7. Selecteer + Nieuwe stap in de ontwerper en voer de volgende stappen uit:

    1. Zoek naar Service Bus.

    2. Selecteer Service Bus in de lijst.

      Schermopname van de selectie van Service Bus.

    3. Selecteer voor Berichten ophalen in de lijst Acties.

    4. Selecteer Berichten van een onderwerpabonnement ontvangen (kort weergeven).

      Schermopname van logic apps Designer met Berichten ophalen uit een onderwerpabonnement geselecteerd.

    5. Volg vervolgens deze stappen:

      1. Geef een naam voor de verbinding op. Bijvoorbeeld: Berichten ophalen uit het onderwerpabonnement.

      2. Controleer of verificatietype is ingesteld op Toegangssleutel.

      3. Kopieer en plak de verbindingsreeks voor Verbinding maken tekenreeks in de Service Bus-naamruimte die u eerder hebt opgeslagen.

      4. Selecteer Maken.

        Schermopname van logic apps Designer met de Service Bus-verbindingsreeks opgegeven.

    6. Selecteer uw onderwerp en abonnement.

      Schermopname van Logic Apps Designer met het Service Bus-onderwerp en het opgegeven abonnement.

Een stap toevoegen om ontvangen berichten te verwerken en te voltooien

In deze stap voegt u stappen toe om het ontvangen bericht in een e-mailbericht te verzenden en vervolgens het bericht te voltooien. In een praktijkscenario verwerkt u een bericht in de logische app voordat u het bericht voltooit.

Een foreach-lus toevoegen

  1. Selecteer + Nieuwe stap.

  2. Zoek en selecteer Vervolgens Control.

    Schermopname van de categorie Control.

  3. Selecteer voor elk item in de lijst Acties.

    Schermopname van de geselecteerde for-each-bewerking.

  4. Als u een uitvoer van de vorige stappen wilt selecteren (klik in het tekstvak indien nodig), selecteert u Hoofdtekst onder Berichten ophalen uit een onderwerpabonnement (peek-lock).

    Schermopname van de selectie van Voor elke invoer.

Een stap in de foreach-lus toevoegen om een e-mailbericht te verzenden met de hoofdtekst van het bericht

  1. Selecteer Een actie toevoegen in Voor elke lus.

    Schermopname van de selectie van een actieknop toevoegen in de lus Voor elke lus.

  2. Voer Office 365 in het tekstvak Connectors en acties zoeken in.

  3. Selecteer Office 365 Outlook in de zoekresultaten.

    Schermopname van de selectie van Office 365.

  4. Selecteer een e-mail verzenden (V2) in de lijst met acties.

    Schermopname van de selectie van Een e-mailbewerking verzenden.

  5. Selecteer Aanmelden en volg de stappen om een verbinding met Office 365 Outlook te maken.

  6. Voer in het venster Een e-mail verzenden (V2) de volgende stappen uit:

  7. Selecteer in het tekstvak voor hoofdtekst en voer de volgende stappen uit:

    1. Voer een e-mailadres in voor Aan.

    2. Voer voor Onderwerp het bericht in dat is ontvangen van het Service Bus-onderwerpabonnement.

    3. Schakel over naar Expressie.

    4. Voer de volgende expressie in:

      base64ToString(items('For_each')?['ContentData'])
      
    5. Selecteer OK.

      Schermopname van de expressie voor hoofdtekst van de activiteit Een e-mail verzenden.

Een andere actie toevoegen in de foreach-lus om het bericht te voltooien

  1. Selecteer Een actie toevoegen in Voor elke lus.

    1. Selecteer Service Bus in de lijst Recent .

    2. Selecteer Het bericht in een onderwerp met een abonnement voltooien in de lijst met acties.

      Schermopname van de selectie van Een bericht voltooien in een onderwerpabonnement.

    3. Selecteer uw Service Bus-onderwerp.

    4. Selecteer een abonnement op het onderwerp.

    5. Selecteer voor Vergrendelingstoken van het bericht de optie Vergrendelingstoken van de Dynamische inhoud.

      Schermopname van het veld Vergrendelingstoken.

  2. Selecteer Opslaan op de werkbalk van de Ontwerper voor logische apps om de logische app op te slaan.

    Schermopname van de knop Opslaan in de logische app die is ontworpen.

De app testen

  1. Als u nog geen testberichten naar het onderwerp hebt verzonden, volg dan de instructies in de sectie Berichten verzenden naar het Service Bus-onderwerp om berichten naar het onderwerp te verzenden.

  2. Ga naar de pagina Overzicht van uw logische app en ga naar het tabblad Uitvoeringsgeschiedenis in het onderste deelvenster. U ziet dat de logische app berichten uitvoert die naar het onderwerp zijn verzonden. Het kan enkele minuten duren voordat u de uitvoeringen van de logische app ziet. Selecteer Vernieuwen op de werkbalk om de pagina te vernieuwen.

    Schermopname van de uitvoeringsgeschiedenis van de logische app.

  3. Selecteer een logische app-uitvoering om de details te zien. U ziet dat er 5 berichten zijn verwerkt in de for-lus.

    Schermopname van de details voor de geselecteerde logische app-uitvoering.

  4. U ontvangt een e-mailbericht voor elk bericht dat de logische app ontvangt.

    Schermopname van Outlook met de berichten die zijn ontvangen van het abonnement van de onderwerpen.

Problemen oplossen

Als u geen 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 Toepassing MessageSender één keer uitgevoerd, dus ik zie vijf berichten.

    Schermopname van de pagina Service Bus-onderwerp met het aantal binnenkomende berichten geselecteerd.

  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 de pagina Service Bus-abonnement met het aantal actieve berichten geselecteerd.

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

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

  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 met het aantal geleverde gebeurtenissen geselecteerd.

Volgende stappen