Sdílet prostřednictvím


Kurz: Reakce na události služby Azure Service Bus přijaté přes Azure Event Grid pomocí Azure Functions

V tomto kurzu se dozvíte, jak reagovat na události služby Azure Service Bus přijaté přes Azure Event Grid pomocí Azure Functions a Azure Logic Apps.

V tomto kurzu se naučíte:

  • Vytvoření oboru názvů služby Service Bus
  • Příprava ukázkové aplikace pro odesílání zpráv
  • Odesílání zpráv do tématu služby Service Bus
  • Příjem zpráv pomocí Logic Apps
  • Nastavení testovací funkce v Azure
  • Propojení funkce a oboru názvů přes službu Event Grid
  • Příjem zpráv pomocí služby Azure Functions

Požadavky

Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.

Vytvoření oboru názvů služby Service Bus

Postupujte podle pokynů v tomto kurzu: Rychlý start: Použití webu Azure Portal k vytvoření tématu a odběrů služby Service Bus a provedení následujících úloh:

  • Vytvořte obor názvů služby Service Bus úrovně Premium .
  • Získejte připojovací řetězec.
  • Vytvořte téma služby Service Bus.
  • Vytvořte odběr tématu. V tomto kurzu potřebujete jenom jedno předplatné, takže nemusíte vytvářet předplatná S2 a S3.

Odesílání zpráv do tématu služby Service Bus

V tomto kroku použijete ukázkovou aplikaci k odesílání zpráv do tématu služby Service Bus, které jste vytvořili v předchozím kroku.

  1. Naklonujte úložiště azure-service-bus GitHubu nebo stáhněte soubor ZIP a extrahujte z něj soubory.

  2. V sadě Visual Studio přejděte do složky \samples\DotNet\Azure.Messaging.ServiceBus\ServiceBusEventGridIntegrationV2 a otevřete soubor SBEventGridIntegration.sln .

  3. V okně Průzkumník řešení rozbalte projekt MessageSender a vyberte Program.cs.

  4. Nahraďte <SERVICE BUS NAMESPACE - CONNECTION STRING> připojovací řetězec do oboru názvů služby Service Bus a <TOPIC NAME> názvem tématu.

    const string ServiceBusConnectionString = "<SERVICE BUS NAMESPACE - CONNECTION STRING>";
    const string TopicName = "<TOPIC NAME>";
    
  5. Sestavte a spusťte program, který odešle 5 testovacích zpráv (const int numberOfMessages = 5;) do tématu služby Service Bus.

    Výstup konzolové aplikace

Další požadavky

Nainstalujte Visual Studio 2022 a zahrňte úlohu vývoje pro Azure. Tato úloha zahrnuje nástroje Azure Functions, které potřebujete k vytváření, sestavování a nasazování projektů Azure Functions v sadě Visual Studio.

Nasazení aplikace funkcí

Poznámka:

Další informace o vytváření a nasazování aplikace Azure Functions najdete v tématu Vývoj azure Functions pomocí sady Visual Studio.

  1. Otevřete soubor ReceiveMessagesOnEvent.cs z projektu FunctionApp1 řešení SBEventGridIntegration.sln.

  2. Nahraďte <SERVICE BUS NAMESPACE - CONNECTION STRING> připojovací řetězec oborem názvů služby Service Bus. Měl by být stejný jako ten, který jste použili v souboru Program.cs projektu MessageSender ve stejném řešení.

  3. Klikněte pravým tlačítkem na FunctionApp1 a vyberte Publikovat.

  4. Na stránce Publikovat vyberte Start. Tyto kroky se můžou lišit od toho, co vidíte, ale proces publikování by měl být podobný.

  5. V průvodci publikováním na stránce Cíl vyberte Azure for Target.

  6. Na stránce Konkrétní cíl vyberte aplikaci Funkcí Azure (Windows).

  7. Na stránce instance služby Functions vyberte Vytvořit novou funkci Azure.

    Obrázek znázorňující tlačítko Přidat funkci v dialogovém okně Visual Studio – Publikovat

  8. Na stránce Aplikace funkcí (Windows) postupujte takto:

    1. Zadejte název aplikace funkcí.
    2. Vyberte předplatné Azure.
    3. Vyberte existující skupinu prostředků nebo vytvořte novou skupinu prostředků. Pro účely tohoto kurzu vyberte skupinu prostředků, která má obor názvů služby Service Bus.
    4. Vyberte typ plánu služby App Service.
    5. Vyberte umístění. Vyberte stejné umístění jako obor názvů služby Service Bus.
    6. Vyberte existující službu Azure Storage nebo vyberte Nový a vytvořte nový účet úložiště, který bude aplikace Functions používat.
    7. Vyberte Vytvořit a vytvořte aplikaci Functions.
  9. Zpět na stránce instance služby Functions v průvodci publikováním vyberte Dokončit.

  10. Na stránce Publikovat v sadě Visual Studio vyberte Publikovat a publikujte aplikaci Functions do Azure.

    Publikování aplikace Functions

  11. V okně Výstup si prohlédněte zprávy z sestavení a publikování a ověřte, že oba proběhly úspěšně.

  12. Teď na stránce Publikovat v části Hostování vyberte ... (tři tečky) a vyberte Spravovat na webu Azure Portal.

  13. Na webu Azure Portal na stránce Aplikace funkcí vyberte v nabídce vlevo funkce a potvrďte, že se zobrazí dvě funkce:

    Snímek obrazovky se stránkou Funkce s funkcí funkce triggeru Event Gridu

  14. V seznamu vyberte EventGridTriggerFunction . Doporučujeme použít trigger Event Gridu se službou Azure Functions, protože má několik výhod oproti použití triggeru HTTP. Podrobnosti najdete v tématu Funkce Azure jako obslužná rutina události pro události Event Gridu.

  15. Na stránce Funkce pro EventGridTriggerFunction vyberte v nabídce vlevo možnost Monitor.

  16. Vyberte Konfigurovat a nakonfigurujte Přehledy aplikace pro zachycení protokolu volání. Na této stránce můžete monitorovat spouštění funkcí při přijímání událostí služby Service Bus z Event Gridu.

  17. Na stránce Přehledy aplikace zadejte název prostředku, vyberte umístění prostředku a pak vyberte OK.

  18. Výběrem funkce EventGridTriggerFunction v horní části (nabídka s popisem cesty) přejděte zpět na stránku Funkce .

  19. Potvrďte, že jste na stránce Monitorování .

    Stránka Monitorování funkce před vyvoláním funkce

    Nechte tuto stránku otevřenou ve webovém prohlížeči na kartě. Na této stránce se později zobrazí vyvolání této funkce.

Připojení funkce a oboru názvů služby Service Bus přes Event Grid

V této části spojíte funkci a obor názvů služby Service Bus pomocí webu Azure Portal.

Pokud chcete vytvořit předplatné služby Azure Event Grid, postupujte takto:

  1. Na webu Azure Portal přejděte do oboru názvů služby Service Bus a v levém podokně vyberte Události. V pravém podokně se otevře okno vašeho oboru názvů, ve kterém se zobrazí dva odběry služby Event Grid.

    Service Bus – stránka událostí

  2. Na panelu nástrojů vyberte + Odběr události.

  3. Na stránce Vytvořit odběr události proveďte následující kroky:

    1. Zadejte název předplatného.

    2. Zadejte název systémového tématu. Systémová témata jsou témata vytvořená pro prostředky Azure, jako je účet Azure Storage a Azure Service Bus. Další informace o systémových tématech najdete v tématu Přehled systémových témat.

    3. Vyberte funkci Azure Functions pro typ koncového bodu a zvolte Vybrat koncový bod.

      Service Bus – Odběr služby Event Grid

    4. Na stránce Vybrat funkci Azure vyberte předplatné, skupinu prostředků, aplikaci funkcí, slot a funkci a pak vyberte Potvrdit výběr.

      Funkce – výběr koncového bodu

    5. Na stránce Vytvořit odběr události přepněte na kartu Filtry a proveďte následující úlohy:

      1. Výběr možnosti Povolit filtrování předmětu

      2. Zadejte název předplatného tématu služby Service Bus (S1), které jste vytvořili dříve.

      3. Vyberte tlačítko Vytvořit.

        Filtr odběru událostí

  4. Přejděte na kartu Odběry událostí na stránce Události a potvrďte, že se v seznamu zobrazuje odběr událostí.

    Odběr událostí v seznamu

Monitorování aplikace Functions

Zprávy, které jste odeslali do tématu služby Service Bus, se předávají do odběru (S1). Event Grid předá zprávy v předplatném funkci Azure. V tomto kroku kurzu potvrdíte, že funkce byla vyvolána, a zobrazí se protokolované informační zprávy.

  1. Na stránce aplikace funkcí Azure přepněte na kartu Monitorování , pokud ještě není aktivní. U každé zprávy publikované do tématu služby Service Bus by se měla zobrazit položka. Pokud je nevidíte, aktualizujte stránku po několika minutách.

    Stránka Monitorování funkce po vyvolání

  2. Výběrem vyvolání ze seznamu zobrazíte podrobnosti.

    Podrobnosti volání funkce

    Pomocí karty Protokoly na stránce Monitorování můžete také zobrazit informace o protokolování při odesílání zpráv. Mohlo by dojít ke zpoždění, takže dejte několik minut, než se zobrazí protokolované zprávy.

    Protokoly funkce

Odstraňování potíží

Pokud se po nějakém čekání a aktualizaci nezobrazují žádné vyvolání funkce, postupujte takto:

  1. Ověřte, že se zprávy dostaly do tématu služby Service Bus. Podívejte se na čítač příchozích zpráv na stránce Téma služby Service Bus. V tomto případě jsem spustila aplikaci MessageSender dvakrát, takže vidím 10 zpráv (5 zpráv pro každé spuštění).

    Stránka Téma služby Service Bus – příchozí zprávy

  2. Ověřte, že v odběru služby Service Bus nejsou žádné aktivní zprávy . Pokud na této stránce nevidíte žádné události, ověřte, že se na stránce Odběr služby Service Bus nezobrazuje žádný počet aktivních zpráv. Pokud je číslo pro tento čítač větší než nula, zprávy v odběru se z nějakého důvodu nepřepošlou do funkce obslužné rutiny (obslužná rutina odběru událostí). Ověřte, že jste správně nastavili odběr událostí.

    Počet aktivních zpráv v předplatném služby Service Bus

  3. Na stránce Události oboru názvů služby Service Bus se zobrazují také doručené události.

    Stránka Události – doručené události

  4. Můžete také vidět, že události se doručují na stránce Odběr událostí. Na tuto stránku se dostanete tak, že na stránce Události vyberete odběr události.

    Stránka odběru událostí – doručené události

Další kroky