Creación de recursos de Service Bus con las plantillas de Azure Resource Manager

Este artículo describe cómo crear e implementar recursos de Service Bus y Event Hubs con plantillas de Azure Resource Manager, PowerShell y el proveedor de recursos de Service Bus.

Las plantillas de Azure Resource Manager ayudan a definir los recursos que se implementarán en una solución, y a especificar parámetros y variables que permitan introducir valores de entrada para distintos entornos. La plantilla está escrita en JSON y consta de expresiones que puede usar para generar valores para su implementación. Para obtener información detallada sobre cómo escribir plantillas de Azure Resource Manager y una explicación del formato de plantilla, vea Nociones sobre la estructura y la sintaxis de las plantillas de Azure Resource Manager.

Nota

Los ejemplos de este artículo muestran cómo utilizar Azure Resource Manager para crear una entidad de mensajería (cola) y un espacio de nombres de Service Bus. Para obtener otros ejemplos de plantillas, visite la Galería de plantillas de inicio rápido de Azure y busque Service Bus.

Nota

Se recomienda usar el módulo Azure Az de PowerShell para interactuar con Azure. Consulte Instalación de Azure PowerShell para empezar. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.

Plantillas de Resource Manager para Service Bus

Estas plantillas de Service Bus y Azure Resource Manager están disponibles para su descarga e implementación. Haga clic en los siguientes vínculos para obtener más información sobre cada uno, con vínculos a las plantillas de GitHub:

Implementación con PowerShell

El siguiente procedimiento describe cómo usar PowerShell para implementar una plantilla de Azure Resource Manager que cree un espacio de nombres de Service Bus de nivel Estándar y una cola dentro de ese espacio de nombres. Este ejemplo se basa en la plantilla de Creación de un espacio de nombres de Service Bus con cola. El flujo de trabajo aproximado es el siguiente:

  1. Instale PowerShell.
  2. Cree la plantilla y (opcionalmente) un archivo de parámetros.
  3. En PowerShell, inicie sesión en la cuenta de Azure.
  4. Si no existe, cree un nuevo grupo de recursos.
  5. Pruebe la implementación.
  6. Si lo desea, establezca el modo de implementación.
  7. Implemente la plantilla.

Para obtener información completa sobre la implementación de plantillas de Azure Resource Manager, vea Implementación de recursos con las plantillas de Azure Resource Manager.

Instalar PowerShell

Instale Azure PowerShell siguiendo las instrucciones de Getting started with Azure PowerShell (Introducción a Azure PowerShell).

Creación de una plantilla

Clone el repositorio o copie la plantilla servicebus-create-queue desde 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]"
    }
  }
}

Creación de un archivo de parámetros (opcional)

Para usar un archivo de parámetros opcional, copie el archivo servicebus-create-queue. Reemplace el valor de serviceBusNamespaceName por el nombre del espacio de nombres de Service Bus que desee crear en esta implementación y sustituya el valor de serviceBusQueueName por el nombre de la cola que desee crear.

{
    "$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 obtener más información, consulte el artículo Parámetros.

Inicio de sesión en Azure y establecimiento de la suscripción de Azure

En una secuencia de comandos de PowerShell, ejecute el siguiente comando:

Connect-AzAccount

Se le solicitará que inicie sesión en la cuenta de Azure. Después de iniciar sesión, ejecute el siguiente comando para ver sus suscripciones disponibles:

Get-AzSubscription

Este comando devuelve una lista de suscripciones de Azure disponibles. Seleccione una suscripción para la sesión actual mediante la ejecución del siguiente comando. Reemplace <YourSubscriptionId> por el GUID de la suscripción de Azure que desea usar:

Set-AzContext -SubscriptionID <YourSubscriptionId>

Configuración del grupo de recursos

Si no tiene un grupo de recursos existente, cree uno con el comando New-AzResourceGroup. Proporcione el nombre del grupo de recursos y la ubicación que desee utilizar. Por ejemplo:

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

Si es correcto, se muestra un resumen del nuevo grupo de recursos.

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

Prueba de la implementación

Valide la implementación mediante la ejecución del cmdlet Test-AzResourceGroupDeployment. Al probar la implementación, proporcione los parámetros exactamente como lo haría al ejecutar la implementación.

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

Creación de la implementación

Para crear la nueva implementación, ejecute el cmdlet New-AzResourceGroupDeployment y proporcione los parámetros necesarios cuando se le solicite. Los parámetros incluyen un nombre para la implementación, el nombre del grupo de recursos y la ruta de acceso o la dirección URL al archivo de plantilla. Si no se especifica el parámetro Modo, se usa el valor predeterminado Incremental. Para más información, vea Implementaciones incrementales y completas.

El siguiente comando le solicita los tres parámetros en la ventana de PowerShell:

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

Para especificar un archivo de parámetros en su lugar, use el siguiente comando:

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

También puede utilizar parámetros en línea cuando ejecute el cmdlet de implementación. El comando es el siguiente:

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

Para ejecutar una implementación completa, establezca el parámetro Modo en Completo:

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

Comprobar la implementación

Si los recursos se implementan correctamente, aparecerá un resumen de la implementación en la ventana de 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

Pasos siguientes

Ahora ha visto los comandos y el flujo de trabajo básico para la implementación de una plantilla de Azure Resource Manager. Para obtener información más detallada, viste los siguientes vínculos: