Partilhar via


Use o Azure CLI para criar um tema de Service Bus e subscrições ao tema

Neste quickstart, usas o Azure CLI para criar um tema de Service Bus e depois crias subscrições para esse tópico.

Quais são os temas e subscrições do Service Bus?

Os tópicos e subscrições do Service Bus suportam um modelo de comunicação por mensagens de publicação/subscrição . Ao utilizar tópicos e subscrições, os componentes de uma aplicação distribuída não comunicam diretamente entre si; em vez disso, trocam mensagens através de um tópico, que atua como intermediário.

Conceitos de Tópico

Em contraste com as filas do Service Bus, em que cada mensagem é processada por um único consumidor, os tópicos e assinaturas proporcionam uma comunicação do tipo um-para-muitos, usando um modelo de publicação/assinatura. É possível registar várias subscrições para um tema. Quando uma mensagem é enviada para um tópico, fica então disponível para cada subscritor para ser tratada/processada de forma independente. Uma subscrição a um tema assemelha-se a uma fila virtual que recebe cópias das mensagens enviadas ao tema. Pode, opcionalmente, registar regras de filtro para um tópico por subscrição, o que lhe permite filtrar ou restringir quais mensagens de um tópico são recebidas por quais subscrições desse tópico.

Os tópicos e subscrições do Service Bus permitem-lhe escalar para processar um grande número de mensagens através de um grande número de utilizadores e aplicações.

Pré-requisitos

Se não tiver uma subscrição do Azure, pode criar uma conta gratuita antes de começar.

Neste início rápido, utiliza o Azure Cloud Shell que pode abrir após iniciar sessão no portal do Azure. Para mais detalhes sobre o Azure Cloud Shell, consulte Visão Geral do Azure Cloud Shell. Também pode instalar e usar o Azure PowerShell na sua máquina.

Criar um tópico do Service Bus e subscrições

Cada subscritor de um tema pode receber uma cópia de cada mensagem. Os tópicos são totalmente protocolados e semanticamente compatíveis com as filas do Service Bus. Os tópicos do Service Bus suportam uma vasta gama de regras de seleção com condições de filtro, com ações opcionais que definem ou modificam propriedades da mensagem. Cada vez que uma regra coincide, produz uma mensagem. Para saber mais sobre regras, filtros e ações, siga este link.

  1. Inicie sessão no portal Azure.

  2. Inicie o Azure Cloud Shell selecionando o ícone mostrado na imagem seguinte. Muda para o modo Bash se a Cloud Shell estiver em modo PowerShell .

  3. Execute o seguinte comando para criar um grupo de recursos Azure. Atualiza o nome do grupo de recursos e a localização, se quiseres.

    az group create --name MyResourceGroup --location eastus
    
  4. Execute o seguinte comando para criar um namespace de mensagens Service Bus. Atualize o nome do namespace para ser único.

    namespaceName=MyNameSpace$RANDOM
    az servicebus namespace create --resource-group MyResourceGroup --name $namespaceName --location eastus
    
  5. Execute o comando seguinte para criar um tópico no namespace.

    az servicebus topic create --resource-group MyResourceGroup   --namespace-name $namespaceName --name MyTopic
    
  6. Crie a primeira subscrição do tema

    az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S1    
    
  7. Crie a segunda subscrição do tema

    az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S2    
    
  8. Crie a terceira subscrição do tema

    az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S3    
    
  9. Crie um filtro na primeira subscrição com um filtro usando propriedades personalizadas (StoreId é uma de Store1, Store2, e 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. Crie um filtro na segunda subscrição com um filtro usando propriedades do cliente (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. Crie um filtro na terceira subscrição com um filtro usando propriedades do cliente (StoreId não em Store1, Store2, Store3, ou 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. Execute o comando seguinte para obter a cadeia de ligação principal para o namespace. Usas esta cadeia de ligação para te ligares à fila e enviar e receber mensagens.

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

    Anota a cadeia de ligação e o nome do tópico. Usa-os para enviar e receber mensagens.

Próximos passos

Para aprender como enviar mensagens para um tema e receber essas mensagens através de uma subscrição, consulte o seguinte artigo: selecione a linguagem de programação no TOC.