Partilhar via


Criar um namespace do Service Bus 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 Service Bus com um tópico, assinatura e regra (filtro). O artigo explica como especificar quais recursos são implantados e como definir parâmetros que são especificados quando a implantaçã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, consulte Convenções de nomenclatura recomendadas para recursos do Azure.

Para obter o modelo completo, consulte o namespace do Service Bus com tópico, assinatura e modelo de regra .

Nota

Os seguintes modelos do Azure Resource Manager estão disponíveis para download e implantação.

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

O que você implanta?

Com esse modelo, você implanta um namespace do Service Bus com tópico, assinatura e regra (filtro).

Os tópicos e assinaturas do Service Bus fornecem uma forma de comunicação um-para-muitos, em um padrão de publicação/assinatura . Ao usar tópicos e assinaturas, os componentes de um aplicativo distribuído não se comunicam diretamente uns com os outros, em vez disso, eles trocam mensagens via tópico que atua como intermediário. Uma assinatura de um tópico se assemelha a uma fila virtual que recebe cópias de mensagens que foram enviadas para o tópico. Um filtro na assinatura permite especificar quais mensagens enviadas para um tópico devem aparecer dentro de uma assinatura de tópico específico.

O que são regras (filtros)?

Em muitos cenários, as mensagens que têm características específicas devem ser processadas de maneiras diferentes. Para habilitar esse processamento personalizado, você pode configurar assinaturas para localizar mensagens que tenham propriedades específicas e, em seguida, executar modificações nessas propriedades. Embora as assinaturas do Barramento de Serviço vejam todas as mensagens enviadas para o tópico, você só pode 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 automaticamente a implementação, clique no seguinte botão:

Implementar no Azure

Parâmetros

Com o Azure Resource Manager, defina parâmetros para valores que você deseja especificar quando o modelo for implantado. O modelo inclui uma secção denominada Parameters que contém todos os valores de parâmetro. Defina um parâmetro para esses valores que variam com base no projeto que você está implantando ou com base no ambiente em que você está implantando. 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 namespace do Service Bus a ser criado.

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

serviceBusTopicName

O nome do tópico criado no namespace do Service Bus.

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

serviceBusSubscriptionName

O nome da assinatura criada no namespace do Service Bus.

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

serviceBusRuleName

O nome da regra (filtro) criada no namespace 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 namespace padrão do Service Bus 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 sintaxe e propriedades JSON, consulte namespaces, tópicos, assinaturas 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>

Próximos passos

Saiba como gerir estes recursos visualizando estes artigos: