Creación de un espacio de nombres de Service Bus con un tema, una suscripción y una regla mediante una plantilla de Azure Resource Manager

En este artículo se muestra cómo utilizar una plantilla de Azure Resource Manager que crea un espacio de nombres de Service Bus con un tema, una suscripción y una regla (filtro). En el artículo se explica cómo especificar los recursos que se implementan y cómo definir los parámetros que se especifican cuando se ejecuta la implementación. Puede usar esta plantilla para sus propias implementaciones o personalizarla para satisfacer sus necesidades.

Para más información sobre la creación de plantillas, consulte Creación de plantillas de Azure Resource Manager.

Para más información sobre procedimientos y patrones de convenciones de nomenclatura de recursos de Azure, vea Convenciones de nomenclatura recomendadas para recursos de Azure.

Para ver la plantilla completa, consulte el artículo sobre el espacio de nombres de Service Bus con un tema, suscripción y una regla.

¿Qué puede implementar?

Con esta plantilla, implementará un espacio de nombres de Service Bus con un tema, una suscripción y una regla (filtro).

Los temas y suscripciones de Service Bus proporcionan una o varias formas de comunicación en un patrón publicación/suscripción. Al usar temas y suscripciones, los componentes de una aplicación distribuida no se comunican directamente entre ellos, sino que intercambian mensajes a través de un tema que actúa como un intermediario. Una suscripción a un tema es similar a una cola virtual que recibe copias de mensajes que se enviaron al tema. Un filtro de una suscripción permite especificar qué mensajes enviados a un tema deben aparecer dentro de una suscripción a un tema determinado.

¿Cuáles son las reglas (filtros)?

En muchos escenarios, los mensajes que tienen características específicas deben procesarse de maneras diferentes. Para permitir este procesamiento personalizado, puede configurar suscripciones para buscar los mensajes que tengan propiedades específicas y, después, realizar modificaciones en dichas propiedades. Aunque las suscripciones de Service Bus ven todos los mensajes enviados al tema, solo se puede copiar un subconjunto de dichos mensajes en la cola de suscripción virtual. Esto se consigue mediante filtros de suscripción. Para más información sobre las reglas (filtros), vea Reglas y acciones.

Para ejecutar automáticamente la implementación, haga clic en el botón siguiente:

Implementación en Azure

Parámetros

Con Azure Resource Manager, se definen los parámetros de los valores que quiere especificar al implementar la plantilla. La plantilla incluye una sección denominada Parameters que contiene todos los valores de los parámetros. Defina un parámetro para esos valores que variarán según el proyecto que vaya a implementar o según el entorno en el que vaya a realizar la implementación. No defina parámetros para valores que siempre permanezcan igual. Cada valor de parámetro se usa en la plantilla para definir los recursos que se implementan.

La plantilla define los parámetros siguientes:

serviceBusNamespaceName

El nombre del espacio de nombres de Service Bus que crear.

"serviceBusNamespaceName": {
"type": "string"
}

serviceBusTopicName

El nombre del tema creado en el espacio de nombres de Service Bus.

"serviceBusTopicName": {
"type": "string"
}

serviceBusSubscriptionName

El nombre de la suscripción creada en el espacio de nombres de Service Bus.

"serviceBusSubscriptionName": {
"type": "string"
}

serviceBusRuleName

El nombre de la regla (filtro) creada en el espacio de nombres de Service Bus.

   "serviceBusRuleName": {
   "type": "string",
  }

serviceBusApiVersion

La versión de la API de Service Bus de la plantilla.

"serviceBusApiVersion": {
       "type": "string",
       "defaultValue": "2017-04-01",
       "metadata": {
           "description": "Service Bus ApiVersion used by the template"
       }

Recursos para implementar

Crea un espacio de nombres de Service Bus estándar de tipo Mensajeríacon tema, suscripción y reglas.

 "resources": [{
        "apiVersion": "[variables('sbVersion')]",
        "name": "[parameters('serviceBusNamespaceName')]",
        "type": "Microsoft.ServiceBus/Namespaces",
        "location": "[variables('location')]",
        "sku": {
            "name": "Standard",
        },
        "resources": [{
            "apiVersion": "[variables('sbVersion')]",
            "name": "[parameters('serviceBusTopicName')]",
            "type": "Topics",
            "dependsOn": [
                "[concat('Microsoft.ServiceBus/namespaces/', parameters('serviceBusNamespaceName'))]"
            ],
            "properties": {
                "path": "[parameters('serviceBusTopicName')]"
            },
            "resources": [{
                "apiVersion": "[variables('sbVersion')]",
                "name": "[parameters('serviceBusSubscriptionName')]",
                "type": "Subscriptions",
                "dependsOn": [
                    "[parameters('serviceBusTopicName')]"
                ],
                "properties": {},
                "resources": [{
                    "apiVersion": "[variables('sbVersion')]",
                    "name": "[parameters('serviceBusRuleName')]",
                    "type": "Rules",
                    "dependsOn": [
                        "[parameters('serviceBusSubscriptionName')]"
                    ],
                    "properties": {
                        "filterType": "SqlFilter",
                        "sqlFilter": {
                            "sqlExpression": "StoreName = 'Store1'",
                            "requiresPreprocessing": "false"
                        },
                        "action": {
                            "sqlExpression": "set FilterTag = 'true'"
                        }
                    }
                }]
            }]
        }]
    }]

Para conocer la sintaxis y las propiedades JSON, consulte espacios de nombres, temas, suscripciones y reglas.

Comandos para ejecutar la implementación

Para implementar los recursos en Azure, debe haber iniciado sesión en la cuenta de Azure y debe usar el módulo de Azure Resource Manager. Para obtener información sobre cómo usar el Administrador de recursos de Azure con PowerShell de Azure o la CLI de Azure, consulte:

En los ejemplos siguientes se supone que ya dispone de un grupo de recursos en la cuenta con el nombre especificado.

PowerShell

New-AzureResourceGroupDeployment -Name \<deployment-name\> -ResourceGroupName \<resource-group-name\> -TemplateUri <https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/quickstarts/microsoft.servicebus/servicebus-create-topic-subscription-rule/azuredeploy.json>

Azure CLI

az deployment group create -g \<my-resource-group\> --template-uri <https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/quickstarts/microsoft.servicebus/servicebus-create-topic-subscription-rule/azuredeploy.json>

Pasos siguientes

Vea los siguientes artículos para aprender a administrar estos recursos: