Share via


Criar um namespace do Barramento de Serviço com tópico, assinatura e regra usando um modelo do Azure Resource Manager

Este artigo mostra como usar um modelo do Azure Resource Manager que cria um namespace do Barramento de Serviço com tópico, assinatura e regra (filtro). O artigo explica como definir quais recursos são implantados e como definir os parâmetros que são especificados quando a implantação é executada. Você pode usar este modelo para suas próprias implantações ou personalizá-lo para atender às suas necessidades

Para saber mais sobre a criação de modelos, consulte Criação de modelos do Azure Resource Manager.

Para saber mais sobre as práticas e os padrões de convenções de nomenclatura de recursos do Azure, confira Convenções de nomenclatura recomendandas para os recursos do Azure.

Para ver o modelo completo, veja o Modelo de namespace do Barramento de Serviço com tópico, assinatura e regra.

O que você implanta?

Com este modelo, você implantará um namespace de Barramento de Serviço com tópico, assinatura e regra (filtro).

Os tópicos e as assinaturas do Barramento de Serviço fornecem uma forma de comunicação de um para muitos, em um padrão de publicação/assinatura. Ao usar tópicos e assinaturas, componentes de um aplicativo distribuído não se comunicam diretamente uns com os outros, mas trocam mensagens por meio de tópico que age como um intermediário. Uma assinatura para um tópico é semelhante a uma fila virtual que recebe cópias das mensagens enviadas ao tópico. Um filtro na assinatura permite que você especifique quais mensagens enviadas a um tópico devem aparecer dentro de uma assinatura específica do tópico.

O que são regras (filtros)?

Em muitos cenários, as mensagens com características específicas precisam ser processadas de maneiras diferentes. Para habilitar isso, você pode configurar assinaturas para localizar as mensagens com as propriedades específicas e, em seguida, realizar determinadas modificações nessas propriedades. Embora as assinaturas do Barramento de Serviço vejam todas as mensagens enviadas para o tópico, você só poderá copiar um subconjunto dessas mensagens para a fila de assinatura virtual. Isso é feito usando filtros de assinatura. Para saber mais sobre regras (filtros), consulte Regras e ações.

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

Implantar no Azure

Parâmetros

Com o Azure Resource Manager, defina parâmetros para os valores que você deseja especificar quando o modelo é implantado. O modelo inclui uma seção chamada Parameters , que contém todos os valores de parâmetro. Defina um parâmetro para os valores que variam de acordo com o projeto que você está implantando ou com o ambiente em que a implantação ocorre. Não defina parâmetros para valores que permanecem sempre os mesmos. Cada valor de parâmetro é usado no modelo para definir os recursos que são implantados.

O modelo define os seguintes parâmetros:

serviceBusNamespaceName

O nome do namespace do Barramento de Serviço a ser criado.

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

serviceBusTopicName

O nome do tópico criado no namespace do Barramento de Serviço.

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

serviceBusSubscriptionName

O nome da assinatura criada no namespace do Barramento de Serviço.

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

serviceBusRuleName

O nome da regra (filtro) criada no namespace do Barramento de Serviço.

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

serviceBusApiVersion

A versão da API do Barramento de Serviço do modelo.

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

Recursos a implantar

Cria um namespace de Barramento de Serviço padrão do tipo Mensagens, com tópico, assinatura 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 saber mais sobre a sintaxe e as propriedades de JSON, consulte namespaces, topics, subscriptions e rules.

Comandos para executar a implantação

Para implantar os recursos no Azure, você deve estar conectado à sua conta do Azure e usar o módulo do Gerenciador de Recursos do Azure. Para obter informações sobre como usar o Gerenciador de Recursos do Azure com o Azure PowerShell ou CLI do Azure, consulte:

Os exemplos a seguir pressupõem que você já tem um grupo de recursos em 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>

Próximas etapas

Saiba como gerenciar esses recursos analisando estes artigos: