Introduzione agli argomenti del bus di servizio

Contenuto dell'esercitazione

Questa esercitazione illustra i passaggi seguenti:

  1. Creare uno spazio dei nomi del bus di servizio usando il portale di Azure.
  2. Creare un argomento del bus di servizio usando il portale di Azure.
  3. Creare una sottoscrizione a tale argomento del bus di servizio usando il portale di Azure.
  4. Scrivere un'applicazione console per inviare un messaggio all'argomento.
  5. Scrivere un'applicazione console per ricevere tale messaggio dalla sottoscrizione.

Prerequisiti

  1. Visual Studio 2015 o versione successiva. Negli esempi di questa esercitazione viene usato Visual Studio 2017.
  2. Una sottoscrizione di Azure.
Nota

Per completare l'esercitazione, è necessario un account Azure. È possibile attivare i benefici della sottoscrizione MSDN o iscriversi per un account gratuito.

1. Creare uno spazio dei nomi tramite il portale di Azure

Se è già stato creato uno spazio dei nomi di messaggistica del bus di servizio, passare alla sezione Creare un argomento usando il portale di Azure.

Per iniziare a usare le code del bus di servizio in Azure, è innanzitutto necessario creare uno spazio dei nomi. Uno spazio dei nomi fornisce un contenitore di ambito per fare riferimento alle risorse del bus di servizio all'interno dell'applicazione.

Per creare uno spazio dei nomi:

  1. Accedere al portale di Azure.
  2. Nel riquadro di spostamento sinistro del portale fare clic su Nuovo, quindi su Enterprise Integration e infine su Bus di servizio.
  3. Nella finestra di dialogo Crea spazio dei nomi immettere un nome per lo spazio dei nomi. Verrà effettuato immediatamente un controllo sulla disponibilità del nome.
  4. Dopo aver verificato che il nome dello spazio dei nomi sia disponibile, scegliere il piano tariffario, ovvero Basic, Standard o Premium.
  5. Nel campo Sottoscrizione scegliere una sottoscrizione di Azure in cui creare lo spazio dei nomi.
  6. Nel campo Gruppo di risorse scegliere un gruppo di risorse esistente nel quale risiederà lo spazio dei nomi oppure crearne uno nuovo.
  7. In Localitàscegliere il paese o l'area in cui deve essere ospitato lo spazio dei nomi.

    Crea spazio dei nomi

  8. Fare clic su Crea. A questo punto, lo spazio dei nomi verrà creato e abilitato nel sistema. Potrebbero essere necessari alcuni minuti per consentire al sistema di effettuare il provisioning delle risorse per lo spazio dei nomi creato.

Ottenere le credenziali di gestione

  1. Nell'elenco degli spazi dei nomi fare clic sul nome dello spazio dei nomi appena creato.
  2. Nel pannello dello spazio dei nomi fare clic su Criteri di accesso condivisi.
  3. Nel pannello Criteri di accesso condivisi fare clic su RootManageSharedAccessKey.

    connection-info

  4. Nel pannello Criteri: RootManageSharedAccessKey fare clic sul pulsante Copia accanto a Stringa di connessione - chiave primaria per copiare la stringa di connessione negli Appunti e usarla in un secondo momento. Incollare questo valore nel Blocco note o in un'altra posizione temporanea.

    connection-string

  5. Ripetere il passaggio precedente e copiare e incollare il valore della chiave primaria in un percorso temporaneo per usarlo in seguito.

2. Creare un argomento usando il portale di Azure

  1. Accedere al portale di Azure.
  2. Nel riquadro di spostamento a sinistra del portale, fare clic su Bus di servizio (se non viene visualizzato Bus di servizio, fare clic su Altri servizi).
  3. Fare clic sullo spazio dei nomi in cui si vuole creare l'argomento. Viene visualizzato il pannello della panoramica dello spazio dei nomi:

    Creare un argomento

  4. Nel pannello Spazio dei nomi del bus di servizio fare clic su Argomenti e quindi su Aggiungi argomento.

    Selezionare gli argomenti

  5. Immettere un nome per l'argomento e deselezionare l'opzione Abilita partizionamento. Lasciare invariati i valori predefiniti delle altre opzioni.

    Selezionare Nuovo

  6. Fare clic su Creanella parte inferiore del pannello.

3. Creare una sottoscrizione all'argomento

  1. Nel riquadro delle risorse del portale fare clic sullo spazio dei nomi creato nel passaggio 1, quindi fare clic sul nome dell'argomento creato nel passaggio 2.
  2. Nella parte superiore del riquadro della panoramica fare clic sul segno più accanto a Sottoscrizione per aggiungere una sottoscrizione a questo argomento.

    Creare la sottoscrizione

  3. Immettere un nome per la sottoscrizione. Lasciare invariati i valori predefiniti delle altre opzioni.

4. Inviare messaggi all'argomento

Per inviare messaggi all'argomento, si scrive un'applicazione console C# in Visual Studio.

Creare un'applicazione console

Avviare Visual Studio e creare un nuovo progetto App console (.NET Framework).

Aggiungere il pacchetto NuGet del bus di servizio

  1. Fare clic con il pulsante destro del mouse sul progetto appena creato e scegliere Gestisci pacchetti NuGet.
  2. Fare clic sulla scheda Esplora, cercare Bus di servizio di Microsoft Azure e quindi selezionare l'elemento WindowsAzure.ServiceBus. Fare clic su Installa per completare l'installazione, quindi chiudere questa finestra di dialogo.

    Selezionare un pacchetto NuGet

Scrivere il codice per inviare un messaggio all'argomento

  1. Aggiungere l'istruzione using seguente all'inizio del file Program.cs.

    using Microsoft.ServiceBus.Messaging;
    
  2. Aggiungere il codice seguente al metodo Main . Impostare la variabile connectionString sulla stessa stringa di connessione ottenuta al momento della creazione dello spazio dei nomi e impostare topicName sul nome usato durante la creazione dell'argomento.

    var connectionString = "<your connection string>";
    var topicName = "<your topic name>";
    
    var client = TopicClient.CreateFromConnectionString(connectionString, topicName);
    var message = new BrokeredMessage("This is a test message!");
    
    Console.WriteLine(String.Format("Message body: {0}", message.GetBody<String>()));
    Console.WriteLine(String.Format("Message id: {0}", message.MessageId));
    
    client.Send(message);
    
    Console.WriteLine("Message successfully sent! Press ENTER to exit program");
    Console.ReadLine();
    

    Ecco l'aspetto che avrà il file Program.cs.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Microsoft.ServiceBus.Messaging;
    
    namespace tsend
    {
        class Program
        {
            static void Main(string[] args)
            {
                var connectionString = "Endpoint=sb://<your namespace>.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=<your key>";
                var topicName = "<your topic name>";
    
                var client = TopicClient.CreateFromConnectionString(connectionString, topicName);
                var message = new BrokeredMessage("This is a test message!");
    
                Console.WriteLine(String.Format("Message body: {0}", message.GetBody<String>()));
                Console.WriteLine(String.Format("Message id: {0}", message.MessageId));
    
                client.Send(message);
    
                Console.WriteLine("Message successfully sent! Press ENTER to exit program");
                Console.ReadLine();
            }
        }
    }
    
  3. Eseguire il programma e controllare il portale di Azure: fare clic sul nome dell'argomento nel pannello Panoramica dello spazio dei nomi. Viene visualizzato il pannello Informazioni di base dell'argomento. Nelle sottoscrizioni elencate nella parte inferiore del pannello si noti che il valore di Numero di messaggi attivi per ogni sottoscrizione ora è 1. Ogni volta che si avvia l'applicazione mittente senza recuperare i messaggi (come illustrato nella sezione successiva), questo valore aumenta di 1. Si noti anche che la dimensione corrente dell'argomento aumenta il valore di Corrente nel pannello Informazioni di base ogni volta che l'app aggiunge un messaggio all'argomento o alla sottoscrizione.

    Dimensioni dei messaggi

5. Ricevere messaggi dalla sottoscrizione

  1. Per ricevere uno o più messaggi inviati, creare una nuova applicazione console e aggiungere un riferimento al pacchetto NuGet del bus di servizio, come per l'applicazione mittente precedente.
  2. Aggiungere l'istruzione using seguente all'inizio del file Program.cs.

    using Microsoft.ServiceBus.Messaging;
    
  3. Aggiungere il codice seguente al metodo Main . Impostare la variabile connectionString sulla stessa stringa di connessione ottenuta al momento della creazione dello spazio dei nomi e impostare topicName sul nome usato durante la creazione dell'argomento.

    var connectionString = "<your connection string>";
    var topicName = "<your topic name>";
    
    var client = SubscriptionClient.CreateFromConnectionString(connectionString, topicName, "<your subscription name>");
    
    client.OnMessage(message =>
    {
      Console.WriteLine(String.Format("Message body: {0}", message.GetBody<String>()));
      Console.WriteLine(String.Format("Message id: {0}", message.MessageId));
    });
    
    Console.WriteLine("Press ENTER to exit program");
    Console.ReadLine();
    

    Ecco l'aspetto che avrà il file Program.cs:

    using System;
    using Microsoft.ServiceBus.Messaging;
    
    namespace GettingStartedWithTopics
    {
      class Program
      {
        static void Main(string[] args)
        {
          var connectionString = "Endpoint=sb://<your namespace>.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=<your key>";;
          var topicName = "<your topic name>";
    
          var client = SubscriptionClient.CreateFromConnectionString(connectionString, topicName, "<your subscription name>");
    
          client.OnMessage(message =>
          {
            Console.WriteLine(String.Format("Message body: {0}", message.GetBody<String>()));
            Console.WriteLine(String.Format("Message id: {0}", message.MessageId));
          });
    
          Console.WriteLine("Press ENTER to exit program");   
          Console.ReadLine();
        }
      }
    }
    
  4. Eseguire il programma e verificare di nuovo il portale. Si noti che ora i valori di Numero di messaggi attivi e di Corrente sono pari a 0.

    Lunghezza argomento

Congratulazioni. Sono stati creati un argomento e una sottoscrizione ed è stato inviato un messaggio che è stato quindi ricevuto.

Passaggi successivi

Vedere il repository GitHub con esempi che illustrano alcune delle funzionalità più avanzate della messaggistica del bus di servizio.