Share via


Criar um espaço de nomes do Service Bus com tópico, subscrição e regra com um modelo de Resource Manager do Azure

Este artigo mostra como utilizar um modelo do Azure Resource Manager que cria um espaço de nomes do Service Bus com um tópico, subscrição e regra (filtro). O artigo explica como especificar que recursos são implementados e como definir parâmetros que são especificados quando a implementação é executada. Pode utilizar este modelo para as suas próprias implementações ou personalizá-lo para satisfazer as suas necessidades

Para obter mais informações sobre a criação de modelos, consulte Authoring Azure Resource Manager templates (Criar modelos do Azure Resource Manager).

Para obter mais informações sobre práticas e padrões em convenções de nomenclatura de recursos do Azure, veja Convenções de nomenclatura recomendadas para recursos do Azure.

Para obter o modelo completo, veja o espaço de nomes do Service Bus com o tópico, a subscrição e o modelo de regra .

Nota

Os seguintes modelos de Resource Manager do Azure estão disponíveis para transferência e implementação.

Para procurar os modelos mais recentes, visite a galeria Modelos de Início Rápido do Azure e procure Service Bus.

O que implementa?

Com este modelo, vai implementar um espaço de nomes do Service Bus com tópico, subscrição e regra (filtro).

Os tópicos e subscrições do Service Bus fornecem uma forma de comunicação um-para-muitos, num padrão 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. Uma subscrição de um tópico assemelha-se a uma fila virtual que recebe cópias de mensagens que foram enviadas para o tópico. Um filtro na subscrição permite-lhe especificar que mensagens enviadas para um tópico devem aparecer numa subscrição de tópico específica.

O que são regras (filtros)?

Em muitos cenários, as mensagens com características específicas têm de ser processadas de formas diferentes. Para ativar este processamento personalizado, pode configurar subscrições para localizar mensagens com propriedades específicas e, em seguida, efetuar modificações a essas propriedades. Embora as subscrições do Service Bus vejam todas as mensagens enviadas para o tópico, só pode copiar um subconjunto dessas mensagens para a fila de subscrição virtual. É realizado através de filtros de subscrição. Para saber mais sobre regras (filtros), veja Regras e ações.

Para executar automaticamente a implementação, clique no seguinte botão:

Implementar no Azure

Parâmetros

Com o Azure Resource Manager, defina parâmetros para os valores que pretende especificar quando o modelo é implementado. O modelo inclui uma secção denominada Parameters que contém todos os valores de parâmetro. Defina um parâmetro para os valores que variam com base no projeto que está a implementar ou com base no ambiente no qual está a implementar. Não defina parâmetros para valores que permanecem sempre iguais. Cada valor de parâmetro é utilizado no modelo para definir os recursos que são implementados.

O modelo define os seguintes parâmetros:

serviceBusNamespaceName

O nome do espaço de nomes do Service Bus a criar.

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

serviceBusTopicName

O nome do tópico criado no espaço de nomes do Service Bus.

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

serviceBusSubscriptionName

O nome da subscrição criada no espaço de nomes do Service Bus.

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

serviceBusRuleName

O nome da regra(filtro) criada no espaço de nomes do Service Bus.

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

serviceBusApiVersion

A versão da API do Service Bus do modelo.

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

Recursos a implementar

Cria um espaço de nomes padrão do Service Bus do tipo Mensagens, com tópico e subscrição e regras.

 "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 obter sintaxe JSON e propriedades, veja espaços de nomes, tópicos, subscrições e regras.

Comandos para executar a implementação

Para implementar os recursos no Azure, deve ter a sessão iniciada na sua conta do Azure e deve utilizar o módulo do Azure Resource Manager. Para saber mais sobre como utilizar o Azure Resource Manager com o Azure PowerShell ou com a CLI do Azure, veja:

Os exemplos seguintes partem do princípio em como já tem um grupo de recursos na sua conta com o nome 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>

CLI do Azure

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>

Passos seguintes

Saiba como gerir estes recursos ao ver estes artigos: