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
Účet a předplatné Azure.An Azure account and subscription. Pokud nemáte předplatné Azure, zaregistrujte si bezplatný účet Azure.If you don't have an Azure subscription, sign up for a free Azure account.
Obor názvů Service Bus a entita zasílání zpráv, jako je například fronta.A Service Bus namespace and messaging entity, such as a queue. Tyto položky a aplikace logiky potřebují použít stejné předplatné Azure.These items and your logic app need to use the same Azure subscription. Pokud tyto položky nemáte, přečtěte si, jak vytvořit obor názvů Service Bus a frontu.If you don't have these items, learn how to create your Service Bus namespace and a queue.
Základní znalosti o tom, jak vytvářet aplikace logikyBasic knowledge about how to create logic apps
Aplikace logiky, kde se používá Service Bus obor názvů a entita zasílání zprávThe logic app where you use the Service Bus namespace and messaging entity. Vaše aplikace logiky a služba Service Bus musí používat stejné předplatné Azure.Your logic app and the service bus need to use the same Azure subscription. Pokud chcete pracovní postup spustit pomocí triggeru Service Bus, vytvořte prázdnou aplikaci logiky.To start your workflow with a Service Bus trigger, create a blank logic app. Pokud chcete ve svém pracovním postupu použít akci Service Bus, spusťte aplikaci logiky s jinou triggerem, například triggerem opakování.To use a Service Bus action in your workflow, start your logic app with another trigger, for example, the Recurrence trigger.
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.
V Azure Portalse přihlaste pomocí svého účtu Azure.In the Azure portal, sign in with your Azure account.
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.
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.
V podokně zásady sdíleného přístupu vyberte RootManageSharedAccessKey.On the Shared access policies pane, select RootManageSharedAccessKey.
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.
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 theEntityPath
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
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.
Do vyhledávacího pole portálu zadejte
azure service bus
.In the portal search box, enterazure 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.
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 theWorkflowRunInProgress
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 themaximumWaitingRuns
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 promaximumWaitingRuns
vlastnost.To find the optimal value for your scenario, start testing with a value of 1 or 2 for themaximumWaitingRuns
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.
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.
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.
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.
Vyberte zásady Service Bus a vyberte vytvořit.Select your Service Bus policy, and select Create.
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.
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.
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.
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
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.
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.
V části zvolit akci zadejte do vyhledávacího pole
azure service bus
.Under Choose an action, in the search box, enterazure 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.
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.
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.
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.
Vyberte zásady Service Bus a vyberte vytvořit.Select your Service Bus policy, and select Create.
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.
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.
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.
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.
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
- Další informace o dalších konektorech Logic AppsLearn about other Logic Apps connectors