Zelfstudie: Reageren op Azure Service Bus-gebeurtenissen die via Azure Event Grid worden ontvangen 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: Snelstart: De Azure-portal gebruiken om een Service Bus-onderwerp en abonnementen te maken voor het onderwerp om de volgende taken uit te voeren:

  • Een premium Service Bus-naamruimte maken.
  • De verbindingsreeks ophalen.
  • 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 extraheren er bestanden uit.

  2. Ga Visual Studio naar de map \samples\DotNet\Azure.Messaging.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. Maak een logische app in de Azure Portal.
    1. Selecteer + Een resource maken, selecteer Integratie en selecteer Logische app.
    2. Selecteer uw Azure-abonnement.
    3. 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.
    4. Bij Type selecteert u Verbruik.
    5. Voer een naam in voor de logische app.
    6. Selecteer de Regio voor de logische app.
    7. Selecteer Controleren + maken.
    8. Selecteer Maken op de pagina Beoordelen en maken op de logische app te maken.
    9. Selecteer op de pagina Implementatie voltooid de optie Ga naar resource.
  2. Op de pagina Ontwerper van logische apps selecteert u Lege logische app onder Sjablonen.

Een stap toevoegen voor het ontvangen van berichten Service Bus via Event Grid

  1. Voer in de ontwerper de volgende stappen uit:
    1. Zoek naar Event Grid.

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

      Ontwerper van logische apps: Event Grid-trigger selecteren

  2. Selecteer Aanmelden, voer uw Azure-referenties in en selecteer Toegang toestaan.
  3. 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.

      Afbeelding met de toevoeging van een achtervoegselfilter.

    5. Voer bij Achtervoegselfilter de naam in van uw Service Bus onderwerpabonnement. Ontwerper van logische apps: gebeurtenis configureren

  4. Selecteer + Nieuwe stap in de ontwerper en voer de volgende stappen uit:
    1. Zoek naar Service Bus.

    2. Selecteer Service Bus in de lijst.

    3. Selecteer voor Berichten ophalen in de lijst Acties.

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

      Ontwerper van logische apps: de actie berichten ophalen

    5. Geef een naam voor de verbinding op. Bijvoorbeeld: Ontvang berichten van het onderwerp-abonnement en selecteer de Service Bus-naamruimte.

      Ontwerper van logische apps: de Service Bus-naamruimte selecteren

    6. Selecteer RootManageSharedAccessKey en selecteer vervolgens Maken.

      Ontwerper van logische apps: de gedeelde toegangssleutel selecteren

    7. Selecteer uw onderwerp en abonnement.

      Schermopname die laat zien waar u uw onderwerp en abonnement selecteert.

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 het bericht vervolgens te voltooien. In een echt scenario 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 Besturingselement.

    Afbeelding van selectie van de categorie Besturingselement

  3. Selecteer in de lijst Acties voor elke.

    Afbeelding van de selectie van Voor elk besturingselement

  4. Voor Selecteer een uitvoer uit de vorige stappen (klik zo nodig in het tekstvak) selecteert u Hoofdtekst onder Berichten van een onderwerpabonnement ontvangen (peek-lock).

    Afbeelding met de selectie van invoer voor For each

Voeg een stap toe in de foreach-lus om een e-mailbericht te verzenden met de hoofd tekst van het bericht

  1. Selecteer binnen De lus Voor elke de optie Een actie toevoegen.

    Afbeelding van de selectie van een actieknop toevoegen in de voor elke lus

  2. Voer in het tekstvak Connectors en acties doorzoeken de Office 365.

  3. Selecteer Office 365 Outlook in de zoekresultaten.

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

  5. Volg deze stappen in het venster Een e-mail verzenden (V2) :

  6. Selecteer in het tekstvak voor Hoofdtekst en volg deze stappen:

    1. Voer bij Aan een e-mailadres in.

    2. Bij Onderwerp voert u Bericht ontvangen van Service Bus abonnement van het onderwerp in.

    3. Schakel over naar Expressie.

    4. Voer de volgende expressie in:

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

      Afbeelding van de expressie voor De body van de activiteit Een e-mail verzenden.

Voeg nog een actie toe aan de foreach-lus om het bericht te voltooien

  1. Selecteer binnen De lus Voor elke de optie Een actie toevoegen.

    1. Selecteer Service Bus in de lijst Recent.

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

    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.

      Logic Apps Designer: het bericht voltooien

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

    Logische app opslaan

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 vervolgens naar het tabblad Geschiedenis van runs in het onderste deelvenster. U ziet dat met de logische app berichten worden uitgevoerd 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.

    Ontwerper van logische apps - uitvoeringen van 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.

    Details van de logische app-uitvoering

  4. U ontvangt een e-mail voor elk bericht dat door de logische app wordt ontvangen.

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 berichten teller 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).

    Pagina met 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.

    Actieve berichtentelling bij het Service Bus-abonnement

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

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

    Pagina gebeurtenisabonnement - afgeleverde gebeurtenissen

Volgende stappen