Compartilhar via


Usar a CLI do Azure para criar um tópico no Service Bus e assinaturas para o tópico

Neste Início rápido, você usará a CLI do Azure para criar um tópico do Barramento de Serviço e, em seguida, criará assinaturas para esse tópico.

O que são tópicos e assinaturas do Barramento de Serviço?

Os tópicos e assinaturas do Barramento de Serviço dão suporte a um modelo de comunicação de mensagens de publicação/assinatura . Ao usar tópicos e assinaturas, os componentes de um aplicativo distribuído não se comunicam diretamente entre si; em vez disso, trocam mensagens por meio de um tópico, que atua como um intermediário.

TopicConcepts

Em contraste com as filas do Service Bus, nas quais cada mensagem é processada por um único consumidor, tópicos e assinaturas proporcionam uma comunicação do tipo um para muitos, utilizando o padrão de publicação/assinatura. É possível registrar várias assinaturas em um tópico. Quando uma mensagem é enviada para um tópico, ela é disponibilizada para cada assinatura para manipular/processar de forma independente. Uma assinatura para um tópico se assemelha a uma fila virtual que recebe cópias das mensagens que foram enviadas para o tópico. Opcionalmente, você pode registrar regras de filtro para um tópico por assinatura, o que permite filtrar ou restringir quais mensagens a um tópico são recebidas por quais assinaturas de tópico.

As assinaturas e os tópicos do Barramento de Serviço permitem o dimensionamento para processar um grande número de mensagens entre muitos usuários e aplicativos.

Pré-requisitos

Se você não tiver uma assinatura do Azure, poderá criar uma conta gratuita antes de começar.

Neste início rápido, você usa o Azure Cloud Shell que pode ser iniciado após entrar no portal do Azure. Para obter detalhes sobre o Azure Cloud Shell, consulte Visão geral do Azure Cloud Shell. Você também pode instalar e usar o Azure PowerShell em seu computador.

Criar assinaturas e um tópico do Barramento de Serviço

Cada assinatura de um tópico pode receber uma cópia de cada mensagem. Os tópicos tem total compatibilidade de protocolo e semântica com filas do Barramento de Serviço. Os tópicos do Service Bus oferecem suporte a uma ampla gama de regras de seleção com condições de filtro, além de ações opcionais que definem ou modificam as propriedades das mensagens. Sempre que uma regra corresponde, ela produz uma mensagem. Para saber mais sobre regras, filtros e ações, siga este link.

  1. Entre no portal do Azure.

  2. Inicie o Azure Cloud Shell selecionando o ícone mostrado na imagem a seguir. Alterne para o modo Bash se o Cloud Shell estiver no modo PowerShell .

  3. Execute o comando a seguir para criar um grupo de recursos do Azure. Atualize o nome do grupo de recursos e o local, se desejar.

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

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

    az servicebus topic create --resource-group MyResourceGroup   --namespace-name $namespaceName --name MyTopic
    
  6. Criar a primeira assinatura para o tópico

    az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S1    
    
  7. Criar a segunda assinatura para o tópico

    az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S2    
    
  8. Criar a terceira assinatura para o tópico

    az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S3    
    
  9. Crie um filtro na primeira assinatura com um filtro usando propriedades personalizadas (StoreId é um dos Store1, Store2e 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. Criar um filtro na segunda assinatura com um filtro usando as 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 assinatura com um filtro usando as 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 a seguir para obter a cadeia de conexão primária para o namespace. Você usa essa cadeia de conexão para se conectar à 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    
    

    Anote a cadeia de conexão e o nome do tópico. Você as usa para enviar e receber mensagens.

Próximas etapas

Para saber como enviar mensagens para um tópico e receber essas mensagens por meio de uma assinatura, consulte o seguinte artigo: selecione a linguagem de programação no TOC.