Compartir a través de


Uso de la CLI de Azure para crear un tópico de Service Bus y suscripciones al tópico

En este inicio rápido, usará la CLI de Azure para crear un tema de Service Bus y, a continuación, crear suscripciones a ese tema.

¿Qué son los temas y las suscripciones de Service Bus?

Los temas y suscripciones de Service Bus admiten un modelo de comunicación de mensajería de publicación o suscripción . Cuando se usan temas y suscripciones, los componentes de una aplicación distribuida no se comunican directamente entre sí; en su lugar intercambian mensajes a través de un tema, que actúa como intermediario.

TopicConcepts

A diferencia de las colas de Service Bus, en las que cada mensaje es procesado por un único consumidor, los temas y suscripciones proporcionan una forma de comunicación de uno a muchos mediante un patrón de publicación/suscripción. Es posible registrar varias suscripciones en un tema. Cuando se envía un mensaje a un tema, se pone a disposición de cada suscripción para controlar o procesar de forma independiente. Una suscripción a un tema es similar a una cola virtual que recibe copias de los mensajes enviados al tema. Opcionalmente, puede registrar reglas de filtro para un tema por cada suscripción, lo que le permite filtrar o restringir qué mensajes a un tema son recibidos por sus correspondientes suscripciones de temas.

Los temas y suscripciones de Service Bus permiten escalar para procesar un gran número de mensajes en un gran número de usuarios y aplicaciones.

Prerrequisitos

Si no tiene una suscripción de Azure, puede crear una cuenta gratuita antes de comenzar.

En esta guía de inicio rápido, usará Azure Cloud Shell, que puede iniciar después de iniciar sesión en el portal de Azure. Para más información sobre Azure Cloud Shell, consulte Introducción a Azure Cloud Shell. También puede instalar y usar Azure PowerShell en la máquina.

Creación de un tema y suscripciones de Service Bus

Cada suscripción a un tema puede recibir una copia de cada mensaje. Los temas son completamente compatibles desde el punto de vista semántico y del protocolo con las colas de Service Bus. Los temas de Service Bus admiten una amplia variedad de reglas de selección con condiciones de filtro, con acciones opcionales que establecen o modifican propiedades de mensaje. Cada vez que una regla coincide, genera un mensaje. Para más información sobre reglas, filtros y acciones, siga este vínculo.

  1. Inicie sesión en Azure Portal.

  2. Inicie Azure Cloud Shell seleccionando el icono que se muestra en la imagen siguiente. Cambie al modo Bash si Cloud Shell está en modo powerShell .

  3. Ejecute el comando siguiente para crear un grupo de recursos de Azure. Actualice el nombre del grupo de recursos y la ubicación si lo desea.

    az group create --name MyResourceGroup --location eastus
    
  4. Ejecute el comando siguiente para crear un espacio de nombres de mensajería de Service Bus. Actualice el nombre del espacio de nombres para que sea único.

    namespaceName=MyNameSpace$RANDOM
    az servicebus namespace create --resource-group MyResourceGroup --name $namespaceName --location eastus
    
  5. Ejecute el comando siguiente para crear un tema en el espacio de nombres .

    az servicebus topic create --resource-group MyResourceGroup   --namespace-name $namespaceName --name MyTopic
    
  6. Creación de la primera suscripción al tema

    az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S1    
    
  7. Creación de la segunda suscripción al tema

    az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S2    
    
  8. Creación de la tercera suscripción al tema

    az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S3    
    
  9. Cree un filtro en la primera suscripción con un filtro mediante propiedades personalizadas (StoreId es uno de Store1, Store2y 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. Cree un filtro en la segunda suscripción utilizando las propiedades del 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. Cree un filtro en la tercera suscripción con un filtro mediante las propiedades del cliente (StoreId no en Store1, Store2, Store3o 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. Ejecute el comando siguiente para obtener la cadena de conexión principal del espacio de nombres. Esta cadena de conexión se usa para conectarse a la cola y enviar y recibir mensajes.

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

    Anote la cadena de conexión y el nombre del tema. Los usa para enviar y recibir mensajes.

Pasos siguientes

Para obtener información sobre cómo enviar mensajes a un tema y recibir esos mensajes a través de una suscripción, consulte el siguiente artículo: seleccione el lenguaje de programación en el TOC.