Criar recursos do Service Bus com modelos do Azure Resource Manager
Este artigo descreve como criar e implementar recursos do Service Bus com o Azure Resource Manager modelos, o PowerShell e o fornecedor de recursos do Service Bus.
Os modelos de Resource Manager do Azure ajudam-no a definir os recursos a implementar para uma solução e a especificar parâmetros e variáveis que lhe permitem introduzir valores para diferentes ambientes. O modelo é escrito em JSON e consiste em expressões que pode utilizar para construir valores para a sua implementação. Para obter informações detalhadas sobre como escrever modelos Resource Manager do Azure e um debate sobre o formato do modelo, veja estrutura e sintaxe dos modelos do Azure Resource Manager.
Nota
Os exemplos neste artigo mostram como utilizar o Azure Resource Manager para criar um espaço de nomes e uma entidade de mensagens (fila) do Service Bus. Para obter outros exemplos de modelos, visite a galeria Modelos de Início Rápido do Azure e procure Service Bus.
Nota
Recomendamos que utilize o módulo do 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.
Modelos de Resource Manager do Service Bus
Estes modelos de Resource Manager do Azure do Service Bus estão disponíveis para transferência e implementação. Clique nas seguintes ligações para obter detalhes sobre cada uma delas, com ligações para os modelos no GitHub:
- Criar um espaço de nomes do Service Bus
- Criar um espaço de nomes do Service Bus com fila
- Criar um espaço de nomes do Service Bus com tópico e subscrição
- Criar um espaço de nomes do Service Bus com fila e regra de autorização
- Criar um espaço de nomes do Service Bus com tópico, subscrição e regra
Implementar com o PowerShell
O procedimento seguinte descreve como utilizar o PowerShell para implementar um modelo do Azure Resource Manager que cria um espaço de nomes do Service Bus de escalão Standard e uma fila nesse espaço de nomes. Este exemplo baseia-se no modelo Criar um espaço de nomes do Service Bus com fila . O fluxo de trabalho aproximado é o seguinte:
- Instale o PowerShell.
- Crie o modelo e (opcionalmente) um ficheiro de parâmetros.
- No PowerShell, inicie sessão na sua conta do Azure.
- Crie um novo grupo de recursos se não existir.
- Teste a implementação.
- Se desejar, defina o modo de implementação.
- Implemente o modelo.
Para obter informações completas sobre como implementar modelos de Resource Manager do Azure, veja Implementar recursos com modelos de Resource Manager do Azure.
Instalar o PowerShell
Instale Azure PowerShell ao seguir as instruções em Introdução ao Azure PowerShell.
Criar um modelo
Clone o repositório ou copie o modelo servicebus-create-queue do GitHub:
{
"$schema": "https://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"serviceBusNamespaceName": {
"type": "string",
"metadata": {
"description": "Name of the Service Bus namespace"
}
},
"serviceBusQueueName": {
"type": "string",
"metadata": {
"description": "Name of the Queue"
}
}
},
"variables": {
"defaultSASKeyName": "RootManageSharedAccessKey",
"authRuleResourceId": "[resourceId('Microsoft.ServiceBus/namespaces/authorizationRules', parameters('serviceBusNamespaceName'), variables('defaultSASKeyName'))]",
"sbVersion": "2017-04-01"
},
"resources": [
{
"apiVersion": "2017-04-01",
"name": "[parameters('serviceBusNamespaceName')]",
"type": "Microsoft.ServiceBus/Namespaces",
"location": "[resourceGroup().location]",
"sku": {
"name": "Standard"
},
"properties": {},
"resources": [
{
"apiVersion": "2017-04-01",
"name": "[parameters('serviceBusQueueName')]",
"type": "Queues",
"dependsOn": [
"[concat('Microsoft.ServiceBus/namespaces/', parameters('serviceBusNamespaceName'))]"
],
"properties": {
"lockDuration": "PT5M",
"maxSizeInMegabytes": "1024",
"requiresDuplicateDetection": "false",
"requiresSession": "false",
"defaultMessageTimeToLive": "P10675199DT2H48M5.4775807S",
"deadLetteringOnMessageExpiration": "false",
"duplicateDetectionHistoryTimeWindow": "PT10M",
"maxDeliveryCount": "10",
"autoDeleteOnIdle": "P10675199DT2H48M5.4775807S",
"enablePartitioning": "false",
"enableExpress": "false"
}
}
]
}
],
"outputs": {
"NamespaceConnectionString": {
"type": "string",
"value": "[listkeys(variables('authRuleResourceId'), variables('sbVersion')).primaryConnectionString]"
},
"SharedAccessPolicyPrimaryKey": {
"type": "string",
"value": "[listkeys(variables('authRuleResourceId'), variables('sbVersion')).primaryKey]"
}
}
}
Criar um ficheiro de parâmetros (opcional)
Para utilizar um ficheiro de parâmetros opcional, copie o ficheiro servicebus-create-queue . Substitua o valor de serviceBusNamespaceName
pelo nome do espaço de nomes do Service Bus que pretende criar nesta implementação e substitua o valor de serviceBusQueueName
pelo nome da fila que pretende criar.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"serviceBusNamespaceName": {
"value": "<myNamespaceName>"
},
"serviceBusQueueName": {
"value": "<myQueueName>"
},
"serviceBusApiVersion": {
"value": "2017-04-01"
}
}
}
Para obter mais informações, veja o artigo Parâmetros .
Inicie sessão no Azure e defina a subscrição do Azure
A partir de uma linha de comandos do PowerShell, execute o seguinte comando:
Connect-AzAccount
É-lhe pedido para iniciar sessão na sua conta do Azure. Depois de iniciar sessão, execute o seguinte comando para ver as subscrições disponíveis:
Get-AzSubscription
Este comando devolve uma lista de subscrições do Azure disponíveis. Escolha uma subscrição para a sessão atual ao executar o seguinte comando. Substitua <YourSubscriptionId>
pelo GUID da subscrição do Azure que pretende utilizar:
Set-AzContext -SubscriptionID <YourSubscriptionId>
Definir o grupo de recursos
Se não tiver um grupo de recursos existente, crie um novo grupo de recursos com o comando New-AzResourceGroup . Indique o nome do grupo de recursos e a localização que pretende utilizar. Por exemplo:
New-AzResourceGroup -Name MyDemoRG -Location "West US"
Se for bem-sucedido, será apresentado um resumo do novo grupo de recursos.
ResourceGroupName : MyDemoRG
Location : westus
ProvisioningState : Succeeded
Tags :
ResourceId : /subscriptions/<GUID>/resourceGroups/MyDemoRG
Testar a implementação
Valide a implementação ao executar o Test-AzResourceGroupDeployment
cmdlet. Ao testar a implementação, forneça parâmetros exatamente como faria ao executar a implementação.
Test-AzResourceGroupDeployment -ResourceGroupName MyDemoRG -TemplateFile <path to template file>\azuredeploy.json
Criar a implementação
Para criar a nova implementação, execute o New-AzResourceGroupDeployment
cmdlet e forneça os parâmetros necessários quando lhe for pedido. Os parâmetros incluem um nome para a implementação, o nome do grupo de recursos e o caminho ou URL para o ficheiro de modelo. Se o parâmetro Modo não for especificado, é utilizado o valor predefinido de Incremental . Para obter mais informações, veja Implementações incrementais e completas.
O comando seguinte pede-lhe os três parâmetros na janela do PowerShell:
New-AzResourceGroupDeployment -Name MyDemoDeployment -ResourceGroupName MyDemoRG -TemplateFile <path to template file>\azuredeploy.json
Para especificar um ficheiro de parâmetros, utilize o seguinte comando:
New-AzResourceGroupDeployment -Name MyDemoDeployment -ResourceGroupName MyDemoRG -TemplateFile <path to template file>\azuredeploy.json -TemplateParameterFile <path to parameters file>\azuredeploy.parameters.json
Também pode utilizar parâmetros inline quando executa o cmdlet de implementação. O comando é o seguinte:
New-AzResourceGroupDeployment -Name MyDemoDeployment -ResourceGroupName MyDemoRG -TemplateFile <path to template file>\azuredeploy.json -parameterName "parameterValue"
Para executar uma implementação completa , defina o parâmetro Modo como Concluído:
New-AzResourceGroupDeployment -Name MyDemoDeployment -Mode Complete -ResourceGroupName MyDemoRG -TemplateFile <path to template file>\azuredeploy.json
Verificar a implementação
Se os recursos forem implementados com êxito, será apresentado um resumo da implementação na janela do PowerShell:
DeploymentName : MyDemoDeployment
ResourceGroupName : MyDemoRG
ProvisioningState : Succeeded
Timestamp : 4/19/2017 10:38:30 PM
Mode : Incremental
TemplateLink :
Parameters :
Name Type Value
=============== ========================= ==========
serviceBusNamespaceName String <namespaceName>
serviceBusQueueName String <queueName>
serviceBusApiVersion String 2017-04-01
Passos seguintes
Viu agora o fluxo de trabalho básico e os comandos para implementar um modelo de Resource Manager do Azure. Para obter informações mais detalhadas, visite as seguintes ligações: