Rychlý Start: použití Azure Portal k vytvoření fronty Service BusQuickstart: Use Azure portal to create a Service Bus queue

V tomto rychlém startu se dozvíte, jak odesílat a přijímat zprávy z Service Bus fronty, pomocí Azure Portal k vytvoření oboru názvů pro zasílání zpráv a fronty v rámci tohoto oboru názvů a získání přihlašovacích údajů pro autorizaci v tomto oboru názvů.This quickstart describes how to send and receive messages to and from a Service Bus queue, using the Azure portal to create a messaging namespace and a queue within that namespace, and to obtain the authorization credentials on that namespace. Postup pak ukazuje, jak do této fronty odesílat zprávy a přijímat je z ní pomocí knihovny .NET Standard.The procedure then shows how to send and receive messages from this queue using the .NET Standard library.

Co jsou fronty služby Service Bus?What are Service Bus queues?

Fronty služby Service Bus podporují komunikační model zprostředkovaného zasílání zpráv.Service Bus queues support a brokered messaging communication model. Součásti distribuované aplikace při používání front nekomunikují navzájem přímo. Místo toho si zprávy vyměňují prostřednictvím fronty, která slouží jako zprostředkovatel.When using queues, components of a distributed application do not communicate directly with each other; instead they exchange messages via a queue, which acts as an intermediary (broker). Autor zprávy (odesílatel) předá zprávu do fronty a potom pokračuje v jejím zpracování.A message producer (sender) hands off a message to the queue and then continues its processing. Spotřebitel zprávy (příjemce) asynchronně přebírá zprávu z fronty a zpracovává ji.Asynchronously, a message consumer (receiver) pulls the message from the queue and processes it. Autor nemusí čekat na odpověď od příjemce, aby mohl pokračovat se zpracováním a odesláním dalších zpráv.The producer does not have to wait for a reply from the consumer in order to continue to process and send further messages. Fronty nabízejí doručování zpráv metodou FIFO (First In First Out) pro jednoho nebo několik konkurenčních spotřebitelů.Queues offer First In, First Out (FIFO) message delivery to one or more competing consumers. To znamená, že příjemci zprávy obvykle přijímají a zpracovávají v pořadí, ve kterém byly přidány do fronty, a každou zprávu přijme a zpracuje jenom jeden příjemce zprávy.That is, messages are typically received and processed by the receivers in the order in which they were added to the queue, and each message is received and processed by only one message consumer.

QueueConcepts

Fronty služby Service Bus představují univerzální technologii, kterou můžete použít pro celou řadu scénářů:Service Bus queues are a general-purpose technology that can be used for a wide variety of scenarios:

  • Komunikace mezi webovou rolí a rolí pracovního procesu ve vícevrstvé aplikaci Azure.Communication between web and worker roles in a multi-tier Azure application.
  • Komunikace mezi místními aplikacemi a aplikacemi hostovanými v Azure v případě hybridního řešení.Communication between on-premises apps and Azure-hosted apps in a hybrid solution.
  • Komunikace mezi součástmi distribuované aplikace spuštěné místně v různých organizacích nebo odděleních organizace.Communication between components of a distributed application running on-premises in different organizations or departments of an organization.

Použití fronty vám umožňuje snazší škálování aplikací a zvyšuje odolnost vaší architektury proti chybám.Using queues enables you to scale your applications more easily, and enable more resiliency to your architecture.

PožadavkyPrerequisites

Před tímto kurzem se ujistěte, že máte nainstalované tyto položky:To complete this tutorial, make sure you have installed:

Vytvoření oboru názvů na webu Azure PortalCreate a namespace in the Azure portal

Pokud chcete začít používat entity zasílání zpráv služby Service Bus v Azure, musíte nejprve vytvořit obor názvů s jedinečným názvem v rámci Azure.To begin using Service Bus messaging entities in Azure, you must first create a namespace with a name that is unique across Azure. Obor názvů poskytuje kontejner oboru pro adresování prostředků služby Service Bus v rámci vaší aplikace.A namespace provides a scoping container for addressing Service Bus resources within your application.

Vytvoření oboru názvů:To create a namespace:

  1. Přihlaste se k portálu Azure Portal.Sign in to the Azure portal

  2. V levém navigačním podokně portálu vyberte + vytvořit prostředek, vyberte integracea pak vyberte Service Bus.In the left navigation pane of the portal, select + Create a resource, select Integration, and then select Service Bus.

    Vytvoření > > integrací prostředků Service Bus

  3. V dialogovém okně vytvořit obor názvů proveďte následující kroky:In the Create namespace dialog, do the following steps:

    1. Zadejte název oboru názvů.Enter a name for the namespace. Systém okamžitě kontroluje, jestli je název dostupný.The system immediately checks to see if the name is available. Seznam pravidel pro názvové obory názvů najdete v tématu Create Namespace REST API.For a list of rules for naming namespaces, see Create Namespace REST API.

    2. Vyberte cenovou úroveň (Basic, Standard nebo Premium) pro obor názvů.Select the pricing tier (Basic, Standard, or Premium) for the namespace. Pokud chcete používat témata a odběry, vyberte buď Standard, nebo Premium.If you want to use topics and subscriptions, choose either Standard or Premium. Témata/předplatná se v cenové úrovni Basic nepodporují.Topics/subscriptions are not supported in the Basic pricing tier.

    3. Pokud jste vybrali cenovou úroveň Premium , postupujte podle následujících kroků:If you selected the Premium pricing tier, follow these steps:

      1. Zadejte počet jednotek zasílání zpráv.Specify the number of messaging units. Úroveň Premium poskytuje izolaci prostředků na úrovni procesoru a paměti, aby se jednotlivé úlohy spouštěly izolovaně.The premium tier provides resource isolation at the CPU and memory level so that each workload runs in isolation. Tento kontejner prostředků se nazývá jednotka zasílání zpráv.This resource container is called a messaging unit. Obor názvů Premium má alespoň jednu jednotku zasílání zpráv.A premium namespace has at least one messaging unit. Pro každý obor názvů Service Bus Premium můžete vybrat 1, 2 nebo 4 jednotky zasílání zpráv.You can select 1, 2, or 4 messaging units for each Service Bus Premium namespace. Další informace najdete v tématu Service Bus zasílání zprávna úrovni Premium.For more information, see Service Bus Premium Messaging.
      2. Určete, zda má být zóna oboru názvů redundantní.Specify whether you want to make the namespace zone redundant. Redundance zóny poskytuje rozšířenou dostupnost tím, že šíří repliky napříč zónami dostupnosti v rámci jedné oblasti bez dalších nákladů.The zone redundancy provides enhanced availability by spreading replicas across availability zones within one region at no additional cost. Další informace najdete v tématu zóny dostupnosti v Azure.For more information, see Availability zones in Azure.
    4. V části předplatnévyberte předplatné Azure, ve kterém chcete vytvořit obor názvů.For Subscription, choose an Azure subscription in which to create the namespace.

    5. V poli Skupina prostředkůvyberte existující skupinu prostředků, ve které bude obor názvů živý, nebo vytvořte novou.For Resource group, choose an existing resource group in which the namespace will live, or create a new one.

    6. V poli umístěnívyberte oblast, ve které by měl být hostovaný obor názvů.For Location, choose the region in which your namespace should be hosted.

    7. Vyberte Vytvořit.Select Create. Systém teď vytvoří obor názvů a povolí ho.The system now creates your namespace and enables it. Pravděpodobně budete muset několik minut počkat, než systém zřídí prostředky pro váš účet.You might have to wait several minutes as the system provisions resources for your account.

      Vytvoření oboru názvů

  4. Potvrďte, že obor názvů služby Service Bus byl úspěšně nasazen.Confirm that the service bus namespace is deployed successfully. Oznámení zobrazíte výběrem ikony zvonku (výstrahy) na panelu nástrojů.To see the notifications, select the bell icon (Alerts) on the toolbar. Vyberte název skupiny prostředků v oznámení, jak je znázorněno na obrázku.Select the name of the resource group in the notification as shown in the image. Zobrazí se skupina prostředků, která obsahuje obor názvů služby Service Bus.You see the resource group that contains the service bus namespace.

    Výstraha nasazení

  5. Na stránce skupiny prostředků pro vaši skupinu prostředků vyberte svůj obor názvů služby Service Bus.On the Resource group page for your resource group, select your service bus namespace.

    Stránka skupiny prostředků – vyberte obor názvů služby Service Bus.

  6. Zobrazí se Domovská stránka oboru názvů služby Service Bus.You see the home page for your service bus namespace.

    Domovská stránka oboru názvů služby Service Bus

Získání připojovacího řetězceGet the connection string

Vytvořením nového oboru názvů se automaticky vygeneruje počáteční pravidlo sdíleného přístupového podpisu (SAS) s přidruženým párem primárního a sekundárního klíče, které udělují úplnou kontrolu nad všemi aspekty tohoto oboru názvů.Creating a new namespace automatically generates an initial Shared Access Signature (SAS) rule with an associated pair of primary and secondary keys that each grant full control over all aspects of the namespace. Informace o tom, jak vytvořit pravidla s více omezenými právy pro pravidelné odesílatele a přijímače, najdete v tématu Service Bus ověřování a autorizaci .See Service Bus authentication and authorization for information about how to create rules with more constrained rights for regular senders and receivers. K zkopírování primárního a sekundárního klíče pro svůj obor názvů použijte následující postup:To copy the primary and secondary keys for your namespace, follow these steps:

  1. Klikněte na Všechny prostředky a pak klikněte na název nově vytvořeného oboru názvů.Click All resources, then click the newly created namespace name.

  2. V okně oboru názvů klikněte na Zásady sdíleného přístupu.In the namespace window, click Shared access policies.

  3. Na obrazovce Zásady sdíleného přístupu klikněte na RootManageSharedAccessKey.In the Shared access policies screen, click RootManageSharedAccessKey.

    connection-info

  4. V okně Zásada: RootManageSharedAccessKey klikněte na tlačítko Kopírovat vedle položky Primární připojovací řetězec a zkopírujte si připojovací řetězec do schránky pro pozdější použití.In the Policy: RootManageSharedAccessKey window, click the copy button next to Primary Connection String, to copy the connection string to your clipboard for later use. Vložte tuto hodnotu do Poznámkového bloku nebo jiného dočasného umístění.Paste this value into Notepad or some other temporary location.

    connection-string

  5. Opakujte předchozí krok, zkopírujte si hodnotu pro primární klíč a vložte ji do dočasného umístění pro pozdější použití.Repeat the previous step, copying and pasting the value of Primary key to a temporary location for later use.

Vytvořit frontu na webu Azure PortalCreate a queue in the Azure portal

  1. Na služby Service Bus Namespace stránce fronty v levé navigační nabídce.On the Service Bus Namespace page, select Queues in the left navigational menu.

  2. Na fronty stránce + fronta na panelu nástrojů.On the Queues page, select + Queue on the toolbar.

  3. Zadejte název pro fronty a nechte druhé hodnoty jejich výchozích hodnotách.Enter a name for the queue, and leave the other values with their defaults.

  4. Teď vyberte vytvořit.Now, select Create.

    Front -> + Enter-fronty > vytvořit-název >

Odesílání a příjem zprávSend and receive messages

Poznámka

Ukázka použitá v této části pro odesílání a příjem zpráv je ukázka .NET.The sample used in this section to send and receive messages is a .NET sample. Ukázky pro posílání a přijímání zpráv pomocí jiných programovacích jazyků najdete v tématu Service Bus Samples.For samples to send/receive messages using other programming languages, see Service Bus samples.

Podrobné pokyny pro posílání a přijímání zpráv pomocí různých programovacích jazyků najdete v následujících rychlých startech:For step-by-step instructions for sending/receiving messages using various programming languages, see the following quick starts:

Pokud jste zřídili obor názvů a frontu a máte potřebná pověření, můžete začít odesílat a přijímat zprávy.After the namespace and queue are provisioned, and you have the necessary credentials, you are ready to send and receive messages. Kód si můžete zkontrolovat v této složce s ukázkami na GitHubu.You can examine the code in this GitHub sample folder.

Kód spustíte následovně:To run the code, do the following:

  1. Pomocí následujícího příkazu naklonujte úložiště Service Bus na GitHubu:Clone the Service Bus GitHub repository by issuing the following command:

    git clone https://github.com/Azure/azure-service-bus.git
    
  2. Přejděte do složky s ukázkou azure-service-bus\samples\DotNet\GettingStarted\BasicSendReceiveQuickStart\BasicSendReceiveQuickStart.Navigate to the sample folder azure-service-bus\samples\DotNet\GettingStarted\BasicSendReceiveQuickStart\BasicSendReceiveQuickStart.

  3. Zkopírujte připojovací řetězec a název fronty, který jste získali v části získání přihlašovacích údajů pro správu.Copy the connection string and queue name you obtained in the Obtain the management credentials section.

  4. Do příkazového řádku zadejte následující příkaz:At a command prompt, type the following command:

    dotnet build
    
  5. Přejděte do složky bin\Debug\netcoreapp2.0.Navigate to the bin\Debug\netcoreapp2.0 folder.

  6. Zadáním následujícího příkazu spusťte program.Type the following command to run the program. Nezapomeňte myConnectionString nahradit hodnotou, kterou jste předtím získali, a myQueueName nahraďte názvem vytvořené fronty:Be sure to replace myConnectionString with the value you previously obtained, and myQueueName with the name of the queue you created:

    dotnet BasicSendReceiveQuickStart.dll -ConnectionString "myConnectionString" -QueueName "myQueueName"
    
  7. Sledujte, jak se do fronty odešle deset zpráv a jak se následně z fronty přijmou:Observe 10 messages being sent to the queue, and subsequently received from the queue:

    výstup programu

Vyčištění prostředkůClean up resources

K odebrání skupiny prostředků, oboru názvů a fronty můžete použít web Azure Portal.You can use the portal to remove the resource group, namespace, and queue.

Vysvětlení vzorového kóduUnderstand the sample code

Tato část obsahuje další podrobnosti o chování ukázkového kódu.This section contains more details about what the sample code does.

Získání připojovacího řetězce a frontyGet connection string and queue

Připojovací řetězec a název fronty jsou předány metodě Main() jako argumenty příkazového řádku.The connection string and queue name are passed to the Main() method as command-line arguments. Metoda Main() deklaruje dvě proměnné řetězce, do kterých se tyto údaje načtou:Main() declares two string variables to hold these values:

static void Main(string[] args)
{
    string ServiceBusConnectionString = "";
    string QueueName = "";

    for (int i = 0; i < args.Length; i++)
    {
        var p = new Program();
        if (args[i] == "-ConnectionString")
        {
            Console.WriteLine($"ConnectionString: {args[i+1]}");
            ServiceBusConnectionString = args[i + 1]; 
        }
        else if(args[i] == "-QueueName")
        {
            Console.WriteLine($"QueueName: {args[i+1]}");
            QueueName = args[i + 1];
        }                
    }

    if (ServiceBusConnectionString != "" && QueueName != "")
        MainAsync(ServiceBusConnectionString, QueueName).GetAwaiter().GetResult();
    else
    {
        Console.WriteLine("Specify -Connectionstring and -QueueName to execute the example.");
        Console.ReadKey();
    }                            
}

Metoda Main() pak spustí asynchronní smyčku zpráv, MainAsync().The Main() method then starts the asynchronous message loop, MainAsync().

Smyčka zprávMessage loop

Metoda MainAsync () vytvoří klienta fronty s argumenty příkazového řádku, zavolá obslužnou rutinu pro příjem zpráv nazvanou RegisterOnMessageHandlerAndReceiveMessages()a odešle sadu zpráv:The MainAsync() method creates a queue client with the command-line arguments, calls a receiving message handler named RegisterOnMessageHandlerAndReceiveMessages(), and sends the set of messages:

static async Task MainAsync(string ServiceBusConnectionString, string QueueName)
{
    const int numberOfMessages = 10;
    queueClient = new QueueClient(ServiceBusConnectionString, QueueName);

    Console.WriteLine("======================================================");
    Console.WriteLine("Press any key to exit after receiving all the messages.");
    Console.WriteLine("======================================================");

    // Register QueueClient's MessageHandler and receive messages in a loop
    RegisterOnMessageHandlerAndReceiveMessages();

    // Send Messages
    await SendMessagesAsync(numberOfMessages);

    Console.ReadKey();

    await queueClient.CloseAsync();
}

Metoda RegisterOnMessageHandlerAndReceiveMessages() jednoduše nastaví některé možnosti obslužné rutiny zpráv a potom zavolá metodu RegisterMessageHandler() klienta fronty, která spustí příjem:The RegisterOnMessageHandlerAndReceiveMessages() method simply sets a few message handler options, then calls the queue client's RegisterMessageHandler() method, which starts the receiving:

static void RegisterOnMessageHandlerAndReceiveMessages()
{
    // Configure the MessageHandler Options in terms of exception handling, number of concurrent messages to deliver etc.
    var messageHandlerOptions = new MessageHandlerOptions(ExceptionReceivedHandler)
    {
        // Maximum number of Concurrent calls to the callback `ProcessMessagesAsync`, set to 1 for simplicity.
        // Set it according to how many messages the application wants to process in parallel.
        MaxConcurrentCalls = 1,

        // Indicates whether MessagePump should automatically complete the messages after returning from User Callback.
        // False below indicates the Complete will be handled by the User Callback as in `ProcessMessagesAsync` below.
        AutoComplete = false
    };

    // Register the function that will process messages
    queueClient.RegisterMessageHandler(ProcessMessagesAsync, messageHandlerOptions);
} 

Odesílání zprávSend messages

Operace vytvoření a odeslání zpráv probíhají v metodě SendMessagesAsync():The message creation and send operations occur in the SendMessagesAsync() method:

static async Task SendMessagesAsync(int numberOfMessagesToSend)
{
    try
    {
        for (var i = 0; i < numberOfMessagesToSend; i++)
        {
            // Create a new message to send to the queue
            string messageBody = $"Message {i}";
            var message = new Message(Encoding.UTF8.GetBytes(messageBody));

            // Write the body of the message to the console
            Console.WriteLine($"Sending message: {messageBody}");

            // Send the message to the queue
            await queueClient.SendAsync(message);
        }
    }
    catch (Exception exception)
    {
        Console.WriteLine($"{DateTime.Now} :: Exception: {exception.Message}");
    }
}

Zpracování zprávProcess messages

Metoda ProcessMessagesAsync() rozpoznává, zpracovává a dokončuje příjem zpráv:The ProcessMessagesAsync() method acknowledges, processes, and completes the receipt of the messages:

static async Task ProcessMessagesAsync(Message message, CancellationToken token)
{
    // Process the message
    Console.WriteLine($"Received message: SequenceNumber:{message.SystemProperties.SequenceNumber} Body:{Encoding.UTF8.GetString(message.Body)}");

    // Complete the message so that it is not received again.
    await queueClient.CompleteAsync(message.SystemProperties.LockToken);
}

Poznámka

Prostředky Service Bus můžete spravovat pomocí Service Bus Exploreru.You can manage Service Bus resources with Service Bus Explorer. Service Bus Explorer umožňuje uživatelům připojit se k oboru názvů Service Bus a snadno spravovat entity zasílání zpráv.The Service Bus Explorer allows users to connect to a Service Bus namespace and administer messaging entities in an easy manner. Tento nástroj poskytuje pokročilé funkce, jako jsou funkce importu a exportu, nebo možnost testovat témata, fronty, odběry, služby Relay, centra oznámení a centra událostí.The tool provides advanced features like import/export functionality or the ability to test topic, queues, subscriptions, relay services, notification hubs and events hubs.

Další krokyNext steps

V tomto článku jste vytvořil obor názvů služby Service Bus a další prostředky potřebné k odesílání a přijímání zpráv z fronty.In this article, you created a Service Bus namespace and other resources required to send and receive messages from a queue. Další informace o psaní kódu pro posílání a přijímání zpráv najdete v kurzech v části posílání a přijímání zpráv .To learn more about writing code to send and receive messages, continue to the tutorials in the Send and receive messages section.