Självstudie: Svara på Azure Service Bus-händelser som tagits emot via Azure Event Grid med hjälp av Azure Logic Apps

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

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.

    Console app output

Ta emot meddelanden med Logic Apps

I det här steget skapar du en Azure-logikapp som tar emot Service Bus-händelser via Azure Event Grid.

  1. Välj + Skapa en resurs, välj Integrering och välj sedan Logikapp.

    Screenshot that shows the Create a resource -> Integration -> Logic app menu.

  2. Följ dessa steg på sidan Skapa logikapp :

    1. Välj din Azure-prenumeration.
    2. Välj Använd befintlig för resursgruppen och välj den resursgrupp som du använde för andra resurser (till exempel Azure-funktionen, Service Bus-namnområdet) som du skapade tidigare.
    3. Ange ett namn för logikappen.
    4. Välj Region för logikappen.
    5. Som Plantyp väljer du Förbrukning.
    6. Välj Granska + skapa. Screenshot that shows the Create a logic app page.
    7. På sidan Granska + skapa väljer du Skapa för att skapa logikappen.
  3. På sidan Distributionen är klar väljer du Gå till resurs för att gå till sidan Logikapp .

  4. På sidan Logic Apps Designer väljer du Tom logikapp under Mallar.

Lägga till ett steg för att ta emot meddelanden från Service Bus via Event Grid

  1. På sidan Logikapp väljer du Logikappdesigner på den vänstra menyn.

  2. I den högra rutan under Mallar väljer du Tom logikapp.

    Screenshot that shows the Logic app designer page with the Blank logic app option selected.

  3. Gör följande i designern:

    1. Sök efter Event Grid.

    2. Välj När en resurshändelse inträffar – Azure Event Grid.

      Screenshot that shows the Logic Apps Designer with Event Grid trigger selected.

  4. Välj Logga in.

    Screenshot that shows the Logic Apps Designer with the Sign-in button selected.

  5. På sidan Logga in på ditt konto väljer du det konto som du vill använda för att logga in på Azure. 1.

  6. Gör följande på sidan När en resurshändelse inträffar:

    1. Välj din Azure-prenumerationen.

    2. För Resurstyp väljer du Microsoft.ServiceBus.Namespaces.

    3. Som Resursnamn väljer du Service Bus-namnområdet.

    4. Välj Lägg till ny parameter, välj Suffixfilter och flytta sedan fokus utanför listrutan.

      Screenshot that shows adding of a new parameter of type Suffix filter.

    5. För Suffixfilter anger du namnet på din Service Bus-ämnesprenumeration.

      Screenshot that shows the Logic Apps Designer with connection configuration for the Service Bus namespace.

  7. Välj + Nytt steg i designern och gör följande:

    1. Sök efter Service Bus.

    2. Välj Service Bus i listan.

      Screenshot that shows the selection of Service Bus.

    3. Välj för Hämta meddelanden i listan Åtgärder .

    4. Välj Hämta meddelanden från en ämnesprenumeration (peek-lock).

      Screenshot that shows the Logic Apps Designer with Get messages from a topic subscription selected.

    5. Följ de här stegen:

      1. Ange ett namn för anslutningen. Till exempel: Hämta meddelanden från ämnesprenumerationen.

      2. Bekräfta att autentiseringstypen är inställd på Åtkomstnyckel.

      3. För Anslut ionssträng kopierar och klistrar du in anslutningssträng till Service Bus-namnområdet som du sparade tidigare.

      4. Välj Skapa.

        Screenshot that shows the Logic Apps Designer with the Service Bus connection string specified.

    6. Välj ämne och prenumeration.

      Screenshot that shows the Logic Apps Designer with the Service Bus topic and subscription specified.

Lägga till ett steg för att bearbeta och slutföra mottagna meddelanden

I det här steget lägger du till steg för att skicka det mottagna meddelandet i ett e-postmeddelande och sedan slutföra meddelandet. I ett verkligt scenario bearbetar du ett meddelande i logikappen innan du slutför meddelandet.

Lägga till en foreach-loop

  1. Välj + Nytt steg.

  2. Sök efter och välj sedan Kontroll.

    Screenshot that shows the Control category.

  3. I listan Åtgärder väljer du För var och en.

    Screenshot that shows the For-each operation selected.

  4. För Välj utdata från föregående steg (klicka i textrutan om det behövs) väljer du Brödtext under Hämta meddelanden från en ämnesprenumeration (peek-lock).

    Screenshot that shows the selection of For each input.

Lägg till ett steg i foreach-loopen för att skicka ett e-postmeddelande med meddelandetexten

  1. I För varje loop väljer du Lägg till en åtgärd.

    Screenshot that shows the selection of Add an action button in the For-each loop.

  2. I textrutan Sök efter anslutningsappar och åtgärder anger du Office 365.

  3. Välj Office 365 Outlook i sökresultaten.

    Screenshot that shows the selection of Office 365.

  4. Välj Skicka ett e-postmeddelande (V2) i listan över åtgärder.

    Screenshot that shows the selection of Send an email operation.

  5. Välj Logga in och följ stegen för att skapa en anslutning till Office 365 Outlook.

  6. I fönstret Skicka ett e-postmeddelande (V2) följer du dessa steg:

  7. Välj i textrutan för Brödtext och följ dessa steg:

    1. För Till anger du en e-postadress.

    2. För Ämne anger du Meddelande som tagits emot från Service Bus-ämnets prenumeration.

    3. Växla till Uttryck.

    4. Ange följande uttryck:

      base64ToString(items('For_each')?['ContentData'])
      
    5. Välj OK.

      Screenshot that shows the expression for Body of the Send an email activity.

Lägg till ytterligare en åtgärd i foreach-loopen för att slutföra meddelandet

  1. I För varje loop väljer du Lägg till en åtgärd.

    1. Välj Service Bus i listan Senaste .

    2. Välj Slutför meddelandet i en ämnesprenumeration i listan över åtgärder.

      Screenshot that shows the selection of Complete a message in a topic subscription.

    3. Välj ditt Service Bus-ämne.

    4. Välj en prenumeration på ämnet.

    5. För Lås token för meddelandet väljer du Lås token från dynamiskt innehåll.

      Screenshot that shows the lock token field.

  2. Spara logikappen genom att välja Spara i verktygsfältet i Logic Apps Designer.

    Screenshot that shows the Save button in the Logic app designed.

Testa appen

  1. Om du inte redan har skickat testmeddelanden till ämnet följer du anvisningarna i avsnittet Skicka meddelanden till Service Bus-ämnet för att skicka meddelanden till ämnet.

  2. Växla till sidan Översikt i logikappen och växla sedan till fliken Körningshistorik i det nedre fönstret. Du ser att logikappen kör meddelanden som skickades till ämnet. Det kan ta några minuter innan logikappen körs. Välj Uppdatera i verktygsfältet för att uppdatera sidan.

    Screenshot that shows the Logic app run history.

  3. Välj en logikapp som ska köras för att se informationen. Observera att den bearbetade 5 meddelanden i for-loopen.

    Screenshot that shows the details for the selected logic app run.

  4. Du bör få ett e-postmeddelande för varje meddelande som logikappen tar emot.

    Screenshot of Outlook with the messages received from the topics' subscription.

Felsöka

Om du inte ser några anrop 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 Programmet MessageSender en gång, så jag ser fem meddelanden.

    Screenshot that shows the Service Bus Topic page with incoming message count selected.

  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.

    Screenshot that shows the Service Bus Subscription page with the active message count selected.

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

    Screenshot that shows the Events page of the Service Bus Namespace page.

  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 .

    Screenshot that shows the Event Subscription page with the delivered event count selected.

Nästa steg