Share via


Criar uma regra de autorização do Service Bus para o espaço de nomes e a fila com um modelo do Azure Resource Manager

Este artigo mostra como utilizar um modelo do Azure Resource Manager que cria uma regra de autorização para um espaço de nomes e fila do Service Bus. O artigo explica como especificar que recursos são implementados e como definir parâmetros 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, veja Authoring Azure Resource Manager templates (Criar modelos do Azure Resource Manager).

Para obter o modelo completo, veja o modelo de regra de autorização do Service Bus no GitHub.

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.

Nota

Recomendamos que utilize o módulo Azure Az PowerShell para interagir com o Azure. Veja Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

O que irá implementar?

Com este modelo, vai implementar uma regra de autorização do Service Bus para um espaço de nomes e uma entidade de mensagens (neste caso, uma fila).

Este modelo utiliza a Assinatura de Acesso Partilhado (SAS) para autenticação. A SAS permite que as aplicações se autentiquem no Service Bus com uma chave de acesso configurada no espaço de nomes ou na entidade de mensagens (fila ou tópico) à qual estão associados direitos específicos. Em seguida, pode utilizar esta chave para gerar um token de SAS que os clientes podem, por sua vez, utilizar para autenticar no Service Bus.

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

Implementar no Azure

Parâmetros

Com o Azure Resource Manager, define 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âmetros. Deve definir um parâmetro para esses valores que irá variar 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 permanecerão 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"
}

namespaceAuthorizationRuleName

O nome da regra de autorização para o espaço de nomes.

"namespaceAuthorizationRuleName ": {
"type": "string"
}

serviceBusQueueName

O nome da fila no espaço de nomes do Service Bus.

"serviceBusQueueName": {
"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 e uma regra de autorização do Service Bus para espaço de nomes e entidade.

"resources": [
        {
            "apiVersion": "[variables('sbVersion')]",
            "name": "[parameters('serviceBusNamespaceName')]",
            "type": "Microsoft.ServiceBus/namespaces",
            "location": "[variables('location')]",
            "kind": "Messaging",
            "sku": {
                "name": "Standard",
            },
            "resources": [
                {
                    "apiVersion": "[variables('sbVersion')]",
                    "name": "[parameters('serviceBusQueueName')]",
                    "type": "Queues",
                    "dependsOn": [
                        "[concat('Microsoft.ServiceBus/namespaces/', parameters('serviceBusNamespaceName'))]"
                    ],
                    "properties": {
                        "path": "[parameters('serviceBusQueueName')]"
                    },
                    "resources": [
                        {
                            "apiVersion": "[variables('sbVersion')]",
                            "name": "[parameters('queueAuthorizationRuleName')]",
                            "type": "authorizationRules",
                            "dependsOn": [
                                "[parameters('serviceBusQueueName')]"
                            ],
                            "properties": {
                                "Rights": ["Listen"]
                            }
                        }
                    ]
                }
            ]
        }, {
            "apiVersion": "[variables('sbVersion')]",
            "name": "[variables('namespaceAuthRuleName')]",
            "type": "Microsoft.ServiceBus/namespaces/authorizationRules",
            "dependsOn": ["[concat('Microsoft.ServiceBus/namespaces/', parameters('serviceBusNamespaceName'))]"],
            "location": "[resourceGroup().location]",
            "properties": {
                "Rights": ["Send"]
            }
        }
    ]

Para sintaxe e propriedades JSON, veja espaços de nomes, filas e AuthorizationRules.

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-AzResourceGroupDeployment -ResourceGroupName \<resource-group-name\> -TemplateFile <https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/quickstarts/microsoft.servicebus/servicebus-create-authrule-namespace-and-queue/azuredeploy.json>

CLI do Azure

azure config mode arm

azure group deployment create \<my-resource-group\> \<my-deployment-name\> --template-uri <https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/quickstarts/microsoft.servicebus/servicebus-create-authrule-namespace-and-queue/azuredeploy.json>

Passos seguintes

Agora que criou e implementou recursos com o Azure Resource Manager, saiba como gerir estes recursos ao ver estes artigos: