Výměna zpráv v cloudu pomocí Azure Logic Apps a Azure Service BusExchange messages in the cloud by using Azure Logic Apps and Azure Service Bus

Pomocí Azure Logic Apps a konektoru Azure Service Bus můžete vytvářet automatizované úlohy a pracovní postupy, které přenášejí data, jako jsou prodejní a nákupní objednávky, deníky a pohyby inventáře napříč aplikacemi pro vaši organizaci.With Azure Logic Apps and the Azure Service Bus connector, you can create automated tasks and workflows that transfer data, such as sales and purchase orders, journals, and inventory movements across applications for your organization. Konektor nejen monitoruje, odesílá a spravuje zprávy, ale také provádí akce s frontami, relacemi, tématy, předplatnými a tak dále, například:The connector not only monitors, sends, and manages messages, but also performs actions with queues, sessions, topics, subscriptions, and so on, for example:

  • Monitorování, když přicházejí zprávy (automatické dokončování) nebo jsou přijímány (prohlížet zámky) ve frontách, tématech a předplatných tématu.Monitor when messages arrive (auto-complete) or are received (peek-lock) in queues, topics, and topic subscriptions.
  • Odesílat zprávy.Send messages.
  • Vytvořte a odstraňte odběry témat.Create and delete topic subscriptions.
  • Spravujte zprávy ve frontách a předplatných tématu, například získat, získat odložené, úplné, odložit, opustit a nedoručené písmeno.Manage messages in queues and topic subscriptions, for example, get, get deferred, complete, defer, abandon, and dead-letter.
  • Obnovte zámky u zpráv a relací ve frontách a předplatných tématu.Renew locks on messages and sessions in queues and topic subscriptions.
  • Zavřete relace ve frontách a tématech.Close sessions in queues and topics.

Můžete použít triggery, které získávají odpovědi z Service Bus a zpřístupnit výstup ostatním akcím ve vašich aplikacích logiky.You can use triggers that get responses from Service Bus and make the output available to other actions in your logic apps. Můžete také použít jiné akce výstup z Service Bus akce.You can also have other actions use the output from Service Bus actions. Pokud Service Bus a Logic Apps začínáte, přečtěte si téma co je Azure Service Bus? a co je Azure Logic Apps?If you're new to Service Bus and Logic Apps, review What is Azure Service Bus? and What is Azure Logic Apps?

Důležité

Buďte opatrní při výběru triggeru i akce, která má stejný typ konektoru, a použijte je pro práci se stejnou entitou, jako je například fronta zpráv nebo předplatné tématu.Use caution when you select both a trigger and action that have the same connector type and use them to work with the same entity, such as a messaging queue or topic subscription. Tato kombinace může vytvořit nekonečnou smyčku, která má za následek aplikaci logiky, která nikdy nekončí.This combination can create an infinite loop, which results in a logic app that never ends.

PožadavkyPrerequisites

Kontrolovat oprávněníCheck permissions

Potvrďte, že vaše aplikace logiky má oprávnění pro přístup k vašemu oboru názvů Service Bus.Confirm that your logic app has permissions for accessing your Service Bus namespace.

  1. V Azure Portalse přihlaste pomocí svého účtu Azure.In the Azure portal, sign in with your Azure account.

  2. Přejít na obor názvů Service Bus.Go to your Service Bus namespace. Na stránce obor názvů v části Nastavení vyberte zásady sdíleného přístupu.On the namespace page, under Settings, select Shared access policies. V části deklarace identity ověřte, že máte oprávnění ke správě tohoto oboru názvů.Under Claims, check that you have Manage permissions for that namespace.

    Správa oprávnění pro Service Bus obor názvů

  3. Získejte připojovací řetězec pro obor názvů Service Bus.Get the connection string for your Service Bus namespace. Tento řetězec budete potřebovat, když zadáte informace o připojení do aplikace logiky.You need this string when you provide the connection information in your logic app.

    1. V podokně zásady sdíleného přístupu vyberte RootManageSharedAccessKey.On the Shared access policies pane, select RootManageSharedAccessKey.

    2. Vedle primárního připojovacího řetězce vyberte tlačítko Kopírovat.Next to your primary connection string, select the copy button. Uložte připojovací řetězec pro pozdější použití.Save the connection string for later use.

      Zkopírování připojovacího řetězce oboru názvů Service Bus

    Tip

    Pokud chcete ověřit, jestli je připojovací řetězec přidružený k vašemu oboru názvů Service Bus nebo entitě zasílání zpráv, jako je například fronta, vyhledejte v připojovacím řetězci EntityPath parametr.To confirm whether your connection string is associated with your Service Bus namespace or a messaging entity, such as a queue, search the connection string for the EntityPath parameter. Pokud tento parametr vyhledáte, připojovací řetězec je pro konkrétní entitu a není správným řetězcem pro použití s vaší aplikací logiky.If you find this parameter, the connection string is for a specific entity, and isn't the correct string to use with your logic app.

Přidat aktivační událost Service BusAdd Service Bus trigger

Když přidáte Trigger nebo akci, která se připojuje ke službě nebo systému poprvé, návrhář aplikace logiky vás vyzve k vytvoření připojení tím, že poskytne potřebné informace, které se liší v závislosti na připojení, například:When you add a trigger or action that connects to a service or system for the first time, the Logic App Designer prompts you to create a connection by providing the necessary information, which varies based on the connection, for example:

  • Název, který chcete použít pro nové připojeníThe name that you want to use for the new connection

  • Název systému nebo serveruThe name for the system or server

  • Přihlašovací údaje pro uživatele nebo účetYour user or account credentials

  • Typ ověřování, který se má použítThe authentication type to use

  1. Přihlaste se k Azure Portala otevřete prázdnou aplikaci logiky v návrháři aplikace logiky.Sign in to the Azure portal, and open your blank logic app in the Logic App Designer.

  2. Do vyhledávacího pole portálu zadejte azure service bus .In the portal search box, enter azure service bus. Ze seznamu triggery, který se zobrazí, vyberte aktivační událost, kterou chcete.From the triggers list that appears, select the trigger that you want.

    Chcete-li například aktivovat aplikaci logiky při odeslání nové položky do fronty Service Bus, vyberte možnost při přijetí zprávy v aktivační události fronty (automatické dokončení) .For example, to trigger your logic app when a new item gets sent to a Service Bus queue, select the When a message is received in a queue (auto-complete) trigger.

    Vybrat aktivační událost Service Bus

    Tady jsou některé předpoklady pro použití triggeru Service Bus:Here are some considerations for when you use a Service Bus trigger:

    • Všechny triggery Service Bus jsou triggery s dlouhým dotazem .All Service Bus triggers are long-polling triggers. Tento popis znamená, že když se Trigger aktivuje, Trigger zpracuje všechny zprávy a potom počká 30 sekund, než se další zprávy zobrazí v předplatném fronty nebo tématu.This description means that when the trigger fires, the trigger processes all the messages and then waits 30 seconds for more messages to appear in the queue or topic subscription. Pokud se během 30 sekund nezobrazí žádné zprávy, spuštění triggeru se přeskočí.If no messages appear in 30 seconds, the trigger run is skipped. V opačném případě bude aktivační událost dál číst zprávy, dokud není předplatné fronty nebo tématu prázdné.Otherwise, the trigger continues reading messages until the queue or topic subscription is empty. Dotaz na další Trigger vychází z intervalu opakování zadaného ve vlastnostech triggeru.The next trigger poll is based on the recurrence interval specified in the trigger's properties.

    • Některé triggery, například když přijde jedna nebo více zpráv do aktivační události Queue (AutoComplete) , můžou vracet jednu nebo více zpráv.Some triggers, such as the When one or more messages arrive in a queue (auto-complete) trigger, can return one or more messages. Když se tyto triggery aktivují, vrátí se mezi sebou a počtem zpráv, které jsou zadané ve vlastnosti maximální počet zpráv triggeru.When these triggers fire, they return between one and the number of messages that's specified by the trigger's Maximum message count property.

      Poznámka

      Trigger automatického dokončování automaticky dokončí zprávu, ale dokončování probíhá pouze při dalším volání Service Bus.The auto-complete trigger automatically completes a message, but completion happens only at the next call to Service Bus. Toto chování může ovlivnit návrh aplikace logiky.This behavior can affect your logic app's design. Neměňte například souběžnost na automatickém dokončení triggeru, protože tato změna může mít za následek duplicitní zprávy, pokud vaše aplikace logiky vstoupí do omezeného stavu.For example, avoid changing the concurrency on the auto-complete trigger because this change might result in duplicate messages if your logic app enters a throttled state. Změna řízení souběžnosti vytváří tyto podmínky: omezené triggery jsou přeskočeny WorkflowRunInProgress kódem, operace dokončení nebude provedena a další spuštění triggeru nastane po intervalu dotazování.Changing the concurrency control creates these conditions: throttled triggers are skipped with the WorkflowRunInProgress code, the completion operation won't happen, and next trigger run occurs after the polling interval. Je nutné nastavit dobu trvání zámku služby Service Bus na hodnotu, která je delší než interval cyklického dotazování.You have to set the service bus lock duration to a value that's longer than the polling interval. Bez ohledu na toto nastavení ale nemusí být zpráva dokončena, pokud vaše aplikace logiky zůstane v dalším intervalu dotazování v omezeném stavu.However, despite this setting, the message still might not complete if your logic app remains in a throttled state at next polling interval.

    • Pokud zapnete nastavení souběžnosti pro aktivační událost Service Bus, výchozí hodnota maximumWaitingRuns vlastnosti je 10.If you turn on the concurrency setting for a Service Bus trigger, the default value for the maximumWaitingRuns property is 10. Na základě nastavení doby trvání zámku Service Bus entit a doby běhu vaší instance aplikace logiky může být tato výchozí hodnota příliš velká a může způsobit výjimku "zámek".Based on the Service Bus entity's lock duration setting and the run duration for your logic app instance, this default value might be too large and might cause a "lock lost" exception. Pro vyhledání optimální hodnoty pro váš scénář spusťte testování s hodnotou 1 nebo 2 pro maximumWaitingRuns vlastnost.To find the optimal value for your scenario, start testing with a value of 1 or 2 for the maximumWaitingRuns property. Pokud chcete změnit maximální hodnotu čekání na spuštění, přečtěte si téma Změna limitu čekání na spuštění.To change the maximum waiting runs value, see Change waiting runs limit.

  3. Pokud se Trigger připojuje k vašemu Service Bus oboru názvů poprvé, postupujte podle těchto kroků, když vás návrhář aplikace logiky vyzve k zadání informací o připojení.If your trigger is connecting to your Service Bus namespace for the first time, follow these steps when the Logic App Designer prompts you for connection information.

    1. Zadejte název připojení a vyberte svůj obor názvů Service Bus.Provide a name for your connection, and select your Service Bus namespace.

      Snímek obrazovky, který ukazuje zadání názvu připojení a výběr Service Bus oboru názvů

      Chcete-li místo toho zadat připojovací řetězec ručně, vyberte možnost ručně zadat informace o připojení.To manually enter the connection string instead, select Manually enter connection information. Pokud nemáte připojovací řetězec, přečtěte si, Jak najít připojovací řetězec.If you don't have your connection string, learn how to find your connection string.

    2. Vyberte zásady Service Bus a vyberte vytvořit.Select your Service Bus policy, and select Create.

      Snímek obrazovky zobrazující výběr zásady Service Bus

    3. Vyberte požadovanou entitu zasílání zpráv, například frontu nebo téma.Select the messaging entity you want, such as a queue or topic. V tomto příkladu vyberte frontu Service Bus.For this example, select your Service Bus queue.

      Snímek obrazovky zobrazující výběr Service Bus fronty

  4. Zadejte potřebné informace pro vybraný Trigger.Provide the necessary information for your selected trigger. Chcete-li přidat k akci další dostupné vlastnosti, otevřete seznam Přidat nový parametr a vyberte požadované vlastnosti.To add other available properties to the action, open the Add new parameter list, and select the properties that you want.

    Pro tento příklad triggeru vyberte interval cyklického dotazování a četnost kontroly fronty.For this example's trigger, select the polling interval and frequency for checking the queue.

    Snímek obrazovky zobrazující nastavení intervalu dotazování v aktivační události Service Bus

    Další informace o dostupných triggerech a vlastnostech najdete na referenční stráncekonektoru.For more information about available triggers and properties, see the connector's reference page.

  5. Pokračujte v sestavování aplikace logiky přidáním akcí, které chcete.Continue building your logic app by adding the actions that you want.

    Můžete například přidat akci, která odešle e-mail, když přijde nová zpráva.For example, you can add an action that sends email when a new message arrives. Když aktivační událost zkontroluje vaši frontu a najde novou zprávu, vaše aplikace logiky spustí vybrané akce pro nalezenou zprávu.When your trigger checks your queue and finds a new message, your logic app runs your selected actions for the found message.

Přidat Service Bus akciAdd Service Bus action

Když přidáte Trigger nebo akci, která se připojuje ke službě nebo systému poprvé, návrhář aplikace logiky vás vyzve k vytvoření připojení tím, že poskytne potřebné informace, které se liší v závislosti na připojení, například:When you add a trigger or action that connects to a service or system for the first time, the Logic App Designer prompts you to create a connection by providing the necessary information, which varies based on the connection, for example:

  • Název, který chcete použít pro nové připojeníThe name that you want to use for the new connection

  • Název systému nebo serveruThe name for the system or server

  • Přihlašovací údaje pro uživatele nebo účetYour user or account credentials

  • Typ ověřování, který se má použítThe authentication type to use

  1. V Azure Portalotevřete aplikaci logiky v návrháři aplikace logiky.In the Azure portal, open your logic app in the Logic App Designer.

  2. V kroku, kam chcete přidat akci, vyberte Nový krok.Under the step where you want to add an action, select New step.

    Nebo pokud chcete přidat akci mezi kroky, přesuňte ukazatel myši na šipku mezi těmito kroky.Or, to add an action between steps, move your pointer over the arrow between those steps. Vyberte symbol plus ( + ), který se zobrazí, a vyberte přidat akci.Select the plus sign (+) that appears, and select Add an action.

  3. V části zvolit akci zadejte do vyhledávacího pole azure service bus .Under Choose an action, in the search box, enter azure service bus. V seznamu akce, který se zobrazí, vyberte akci, kterou chcete.From the actions list that appears, select the action that you want.

    V tomto příkladu vyberte akci Odeslat zprávu .For this example, select the Send message action.

    Snímek obrazovky zobrazující výběr akce Service Bus

  4. Pokud se vaše akce připojuje k vašemu Service Bus oboru názvů poprvé, postupujte podle těchto kroků, když vás návrhář aplikace logiky vyzve k zadání informací o připojení.If your action is connecting to your Service Bus namespace for the first time, follow these steps when the Logic App Designer prompts you for connection information.

    1. Zadejte název připojení a vyberte svůj obor názvů Service Bus.Provide a name for your connection, and select your Service Bus namespace.

      Snímek obrazovky, který ukazuje zadání názvu připojení a výběr Service Bus oboru názvů

      Chcete-li místo toho zadat připojovací řetězec ručně, vyberte možnost ručně zadat informace o připojení.To manually enter the connection string instead, select Manually enter connection information. Pokud nemáte připojovací řetězec, přečtěte si, Jak najít připojovací řetězec.If you don't have your connection string, learn how to find your connection string.

    2. Vyberte zásady Service Bus a vyberte vytvořit.Select your Service Bus policy, and select Create.

      Snímek obrazovky zobrazující výběr zásady Service Bus a výběr tlačítka vytvořit

    3. Vyberte požadovanou entitu zasílání zpráv, například frontu nebo téma.Select the messaging entity you want, such as a queue or topic. V tomto příkladu vyberte frontu Service Bus.For this example, select your Service Bus queue.

      Snímek obrazovky, který zobrazuje výběr fronty Service Bus

  5. Zadejte potřebné podrobnosti pro vybranou akci.Provide the necessary details for your selected action. Chcete-li přidat k akci další dostupné vlastnosti, otevřete seznam Přidat nový parametr a vyberte požadované vlastnosti.To add other available properties to the action, open the Add new parameter list, and select the properties that you want.

    Vyberte například vlastnosti obsah a typ obsahu , abyste je přidali do akce.For example, select the Content and Content Type properties so that you add them to the action. Pak zadejte obsah zprávy, kterou chcete odeslat.Then, specify the content for the message that you want to send.

    Snímek obrazovky, který ukazuje zadání typu obsahu zprávy a podrobností

    Další informace o dostupných akcích a jejich vlastnostech najdete na referenční stráncekonektoru.For more information about available actions and their properties, see the connector's reference page.

  6. Pokračujte v sestavování aplikace logiky přidáním všech dalších akcí, které chcete.Continue building your logic app by adding any other actions that you want.

    Můžete například přidat akci, která odešle e-mail s potvrzením, že zpráva byla odeslána.For example, you can add an action that sends email to confirm that your message was sent.

  7. Uložte aplikaci logiky.Save your logic app. Na panelu nástrojů návrháře vyberte Uložit.On the designer toolbar, select Save.

Odeslání korelačních zpráv v daném pořadíSend correlated messages in order

Pokud potřebujete odesílat související zprávy v určitém pořadí, můžete použít sekvenční vzor convoy pomocí konektoru Azure Service Bus.When you need to send related messages in a specific order, you can use the sequential convoy pattern by using the Azure Service Bus connector. Korelační zprávy mají vlastnost, která definuje vztah mezi těmito zprávami, jako je ID relace v Service Bus.Correlated messages have a property that defines the relationship between those messages, such as the ID for the session in Service Bus.

Když vytvoříte aplikaci logiky, můžete vybrat korelujované doručení v pořadí pomocí šablony relace služby Service Bus , která implementuje sekvenční vzor convoy.When you create a logic app, you can select the Correlated in-order delivery using service bus sessions template, which implements the sequential convoy pattern. Další informace najdete v tématu odeslání souvisejících zpráv v daném pořadí.For more information, see Send related messages in order.

Prodlevy v aktualizacích, které se projeví v aplikaci logikyDelays in updates to your logic app taking effect

Pokud je interval dotazování triggeru Service Bus malý, například 10 sekund, aktualizace vaší aplikace logiky se nemusí projevit až po dobu 10 minut.If a Service Bus trigger's polling interval is small, such as 10 seconds, updates to your logic app might not take effect for up to 10 minutes. Pokud chcete tento problém obejít, můžete aplikaci logiky zakázat, provést změny a pak znovu povolit aplikaci logiky.To work around this problem, you can disable the logic app, make the changes, and then enable the logic app again.

Referenční informace ke konektorůmConnector reference

V rámci služby Service Bus může konektor Service Bus v čase ukládat do mezipaměti konektoru až 1 500 jedinečných relací, a to za Service Bus entitu zasílání zpráv, jako je například předplatné nebo téma.From a service bus, the Service Bus connector can save up to 1,500 unique sessions at a time to the connector cache, per Service Bus messaging entity, such as a subscription or topic. Pokud počet relací překročí tento limit, staré relace budou odebrány z mezipaměti.If the session count exceeds this limit, old sessions are removed from the cache. Další informace najdete v tématu relace zpráv.For more information, see Message sessions.

Další technické podrobnosti o aktivačních událostech, akcích a omezeních, které jsou popsány v popisu Swagger tohoto konektoru, najdete na referenční stránce konektoru.For other technical details about triggers, actions, and limits, which are described by the connector's Swagger description, review the connector reference page. Další informace o Azure Service Bus zasílání zpráv najdete v tématu co je Azure Service Bus?For more about Azure Service Bus Messaging, see What is Azure Service Bus?

Další krokyNext steps