Criar recursos do Service Bus usando modelos do Azure Resource Manager

Este artigo descreve como criar e implantar recursos do Service Bus usando modelos do Azure Resource Manager, PowerShell e o provedor de recursos do Service Bus.

Os modelos do Azure Resource Manager ajudam a definir os recursos a serem implantados para uma solução e a especificar parâmetros e variáveis que permitem inserir valores para ambientes diferentes. O modelo é escrito em JSON e consiste em expressões que você pode usar para construir valores para sua implantação. Para obter informações detalhadas sobre como escrever modelos do Azure Resource Manager e uma discussão sobre o formato do modelo, consulte estrutura e sintaxe dos modelos do Azure Resource Manager.

Nota

Os exemplos neste artigo mostram como usar o Azure Resource Manager para criar um namespace do Service Bus e uma entidade de mensagens (fila). Para obter outros exemplos de modelo, visite a galeria de Modelos de Início Rápido do Azure e procure Service Bus.

Nota

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

Modelos do Service Bus Resource Manager

Esses modelos do Service Bus Azure Resource Manager estão disponíveis para download e implantação. Clique nos links a seguir para obter detalhes sobre cada um, com links para os modelos no GitHub:

Implementar com o PowerShell

O procedimento a seguir descreve como usar o PowerShell para implantar um modelo do Azure Resource Manager que cria um namespace do Service Bus de camada Standard e uma fila dentro desse namespace. Este exemplo é baseado no modelo Criar um namespace do Service Bus com fila . O fluxo de trabalho aproximado é o seguinte:

  1. Instale o PowerShell.
  2. Crie o modelo e (opcionalmente) um arquivo de parâmetro.
  3. No PowerShell, inicie sessão na sua conta do Azure.
  4. Crie um novo grupo de recursos, se não existir.
  5. Teste a implantação.
  6. Se desejar, defina o modo de implantação.
  7. Implemente o modelo.

Para obter informações completas sobre como implantar modelos do Azure Resource Manager, consulte Implantar recursos com modelos do Azure Resource Manager.

Instalar o PowerShell

Instale o Azure PowerShell seguindo 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 arquivo de parâmetros (opcional)

Para usar um arquivo de parâmetros opcionais, copie o arquivo servicebus-create-queue . Substitua o valor de serviceBusNamespaceName pelo nome do namespace do Service Bus que você deseja criar nesta implantação e substitua o valor de serviceBusQueueName pelo nome da fila que você deseja 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, consulte o artigo Parâmetros .

Inicie sessão no Azure e defina a subscrição do Azure

Em um prompt do PowerShell, execute o seguinte comando:

Connect-AzAccount

Você será solicitado a fazer logon em 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 assinatura para a sessão atual executando o seguinte comando. Substitua <YourSubscriptionId> pelo GUID da assinatura do Azure que você deseja usar:

Set-AzContext -SubscriptionID <YourSubscriptionId>

Definir o grupo de recursos

Se você não tiver um grupo de recursos existente, crie um novo grupo de recursos com o comando New-AzResourceGroup . Forneça o nome do grupo de recursos e o local que você deseja usar. Por exemplo:

New-AzResourceGroup -Name MyDemoRG -Location "West US"

Se for bem-sucedido, será exibido um resumo do novo grupo de recursos.

ResourceGroupName : MyDemoRG
Location          : westus
ProvisioningState : Succeeded
Tags              :
ResourceId        : /subscriptions/<GUID>/resourceGroups/MyDemoRG

Testar a implementação

Valide sua implantação executando o Test-AzResourceGroupDeployment cmdlet. Ao testar a implantação, forneça parâmetros exatamente como faria ao executar a implantação.

Test-AzResourceGroupDeployment -ResourceGroupName MyDemoRG -TemplateFile <path to template file>\azuredeploy.json

Criar a implantação

Para criar a nova implantação, execute o New-AzResourceGroupDeployment cmdlet e forneça os parâmetros necessários quando solicitado. Os parâmetros incluem um nome para sua implantação, o nome do seu grupo de recursos e o caminho ou URL para o arquivo de modelo. Se o parâmetro Mode não for especificado, o valor padrão de Incremental será usado. Para obter mais informações, consulte Implantações incrementais e completas.

O comando a seguir solicita 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 arquivo de parâmetros, use o seguinte comando:

New-AzResourceGroupDeployment -Name MyDemoDeployment -ResourceGroupName MyDemoRG -TemplateFile <path to template file>\azuredeploy.json -TemplateParameterFile <path to parameters file>\azuredeploy.parameters.json

Você também pode usar parâmetros embutidos ao executar o cmdlet de implantação. O comando é o seguinte:

New-AzResourceGroupDeployment -Name MyDemoDeployment -ResourceGroupName MyDemoRG -TemplateFile <path to template file>\azuredeploy.json -parameterName "parameterValue"

Para executar uma implantação completa , defina o parâmetro Mode como Complete:

New-AzResourceGroupDeployment -Name MyDemoDeployment -Mode Complete -ResourceGroupName MyDemoRG -TemplateFile <path to template file>\azuredeploy.json

Verificar a implementação

Se os recursos forem implantados com êxito, um resumo da implantação será exibido 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

Próximos passos

Agora você viu o fluxo de trabalho básico e os comandos para implantar um modelo do Azure Resource Manager. Para obter informações mais detalhadas, visite os seguintes links: