Uso de la CLI de Azure para crear un tema de Service Bus y suscripciones a dicho tema

En este inicio rápido, usará la CLI de Azure para crear un tema de Service Bus y, después, crear suscripciones a dicho tema.

Qué son los temas y las suscripciones de Service Bus

Las suscripciones y los temas de Service Bus son compatibles con el modelo de comunicación de mensajería de publicación/suscripción . Cuando se usan temas y suscripciones, los componentes de una aplicación distribuida no se comunican directamente entre sí, sino que intercambian mensajes a través de un tema, que actúa como un intermediario.

TopicConcepts

A diferencia de las colas de Service Bus, en las que un solo destinatario procesa cada mensaje, los temas y las suscripciones proporcionan una forma de comunicación de uno a varios mediante un patrón de publicación/suscripción. Es posible registrar varias suscripciones en un tema. Cuando un mensaje se envía a un tema, pasa a estar disponible para cada suscripción para la administración o el procesamiento de manera independiente. Una suscripción a un tema se asemeja a una cola virtual que recibe copias de los mensajes que se enviaron al tema. Opcionalmente, puede registrar reglas de filtros para un tema por suscripción, lo que le permite filtrar o restringir qué mensajes para un tema reciben las suscripciones a un tema.

Las suscripciones y temas de Service Bus le permiten escalar para realizar el procesamiento de un número elevado de mensajes en una serie amplia de usuarios y aplicaciones.

Requisitos previos

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

En este inicio rápido, usará Azure Cloud Shell, que puede iniciar después de iniciar sesión en Azure Portal. 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 establecerán o modificarán las propiedades del mensaje. Cada vez que coincide una regla, esta genera un mensaje. Para más información acerca de reglas, filtros y acciones, siga este vínculo.

  1. Inicie sesión en Azure Portal.

  2. Para iniciar Azure Cloud Shell, seleccione el icono que se muestra en la siguiente imagen. Cambie al modo Bash si Cloud Shell está en modo PowerShell.

  3. Ejecute el siguiente comando 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 siguiente comando para crear un tema en el espacio de nombres.

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

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

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

    az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S3    
    
  9. Filtre la primera suscripción usando propiedades personalizadas (StoreId es 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. Filtre la segunda suscripción usando 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. Filtre la tercera suscripción usando propiedades del cliente (StoreId no está en 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. Ejecute el siguiente comando para obtener la cadena de conexión principal del espacio de nombres. Esta cadena de conexión se usará 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. Se usan para enviar y recibir mensajes.

Pasos siguientes

Para obtener información acerca de cómo enviar mensajes a un tema y recibirlos a través de una suscripción, consulte el artículo siguiente: seleccione el lenguaje de programación en la tabla de contenido.