Usare l'interfaccia della riga di comando di Azure per creare un argomento del bus di servizio e le sottoscrizioni all'argomento

In questa guida di avvio rapido si usa l'interfaccia della riga di comando di Azure per creare un argomento del bus di servizio e quindi le sottoscrizioni a tale argomento.

Cosa sono gli argomenti e le sottoscrizioni del bus di servizio?

Gli argomenti e le sottoscrizioni del bus di servizio supportano un modello di comunicazione con messaggistica di pubblicazione-sottoscrizione . Quando si usano gli argomenti e le sottoscrizioni, i componenti di un'applicazione distribuita non comunicano direttamente l'uno con l'altro, ma scambiano messaggi tramite un argomento, che agisce da intermediario.

TopicConcepts

Diversamente dalle code del bus di servizio, in cui ogni messaggio viene elaborato da un unico consumer, gli argomenti e le sottoscrizioni offrono una forma di comunicazione "uno a molti" tramite un modello di pubblicazione-sottoscrizione. È possibile registrare più sottoscrizioni a un argomento. Quando un messaggio viene inviato a un argomento, viene reso disponibile affinché ogni sottoscrizione possa gestirlo o elaborarlo in modo indipendente. La sottoscrizione a un argomento è simile a una coda virtuale che riceve copie dei messaggi che sono stati inviati all'argomento. È possibile registrare regole di filtro per un argomento in base alla sottoscrizione in modo da poter filtrare/limitare i messaggi a un argomento ricevuti dalle diverse sottoscrizioni degli argomenti.

Gli argomenti e le sottoscrizioni del bus di servizio consentono scalabilità per elaborare grandi quantità di messaggi tra un numero elevato di utenti e applicazioni.

Prerequisiti

Se non si ha una sottoscrizione di Azure, è possibile creare un account gratuito prima di iniziare.

In questa guida introduttiva si usa Azure Cloud Shell che è possibile avviare dopo l'accesso al portale di Azure. Per informazioni dettagliate su Azure Cloud Shell, vedere Panoramica di Azure Cloud Shell. È anche possibile installare e usare Azure PowerShell nel computer.

Creare un argomento del bus di servizio e le sottoscrizioni

Ogni sottoscrizione a un argomento può ricevere una copia di ogni messaggio. Gli argomenti sono completamente compatibili a livello di protocollo e di semantica con le code del bus di servizio. Gli argomenti del bus di servizio supportano un'ampia gamma di regole di selezione con condizioni di filtro, con azioni facoltative per impostare o modificare le proprietà dei messaggi. Ogni volta che una regola corrisponde, genera un messaggio. Per altre informazioni su regole, filtri e azioni, seguire questo collegamento.

  1. Accedere al portale di Azure.

  2. Avviare Azure Cloud Shell selezionando l'icona indicata nell'immagine seguente. Se Cloud Shell è in modalità PowerShell, passare alla modalità Bash.

  3. Usare il comando seguente per creare un gruppo di risorse di Azure. Se si vuole, aggiornare il nome del gruppo di risorse e la località.

    az group create --name MyResourceGroup --location eastus
    
  4. Usare il comando seguente per creare uno spazio dei nomi per la messaggistica del bus di servizio. Aggiornare il nome dello spazio dei nomi in modo che sia univoco.

    namespaceName=MyNameSpace$RANDOM
    az servicebus namespace create --resource-group MyResourceGroup --name $namespaceName --location eastus
    
  5. Usare il comando seguente per creare un argomento nello spazio dei nomi.

    az servicebus topic create --resource-group MyResourceGroup   --namespace-name $namespaceName --name MyTopic
    
  6. Creare la prima sottoscrizione all'argomento.

    az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S1    
    
  7. Creare la seconda sottoscrizione all'argomento.

    az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S2    
    
  8. Creare la terza sottoscrizione all'argomento.

    az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S3    
    
  9. Creare un filtro per la prima sottoscrizione usando un filtro con proprietà personalizzate (StoreId è Store1, Store2 o Store3).

    az servicebus topic subscription rule create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --subscription-name S1 --name MyFilter --filter-sql-expression "StoreId IN ('Store1','Store2','Store3')"    
    
  10. Creare un filtro per la seconda sottoscrizione usando un filtro con proprietà personalizzate (StoreId = Store4).

    az servicebus topic subscription rule create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name myTopic --subscription-name S2 --name MySecondFilter --filter-sql-expression "StoreId = 'Store4'"    
    
  11. Creare un filtro per la terza sottoscrizione usando un filtro con proprietà personalizzate (StoreId non è Store1, Store2, Store3 o Store4).

    az servicebus topic subscription rule create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --subscription-name S3 --name MyThirdFilter --filter-sql-expression "StoreId NOT IN ('Store1','Store2','Store3', 'Store4')"     
    
  12. Usare il comando seguente per ottenere la stringa di connessione primaria per lo spazio dei nomi. Questa stringa di connessione verrà usata per connettersi alla coda e inviare e ricevere messaggi.

    az servicebus namespace authorization-rule keys list --resource-group MyResourceGroup --namespace-name $namespaceName --name RootManageSharedAccessKey --query primaryConnectionString --output tsv    
    

    Prendere nota della stringa di connessione e del nome dell'argomento. Serviranno per inviare e ricevere messaggi.

Passaggi successivi

Per informazioni su come inviare messaggi a un argomento e ricevere tali messaggi tramite una sottoscrizione, vedere l'articolo seguente: selezionare il linguaggio di programmazione nel sommario.