Compartir a través de


Tutorial: Incorporación de variables a la plantilla de Resource Manager

En este tutorial, aprenderá a agregar una variable a su plantilla de Azure Resource Manager (ARM). Las variables simplifican las plantillas. Le permiten escribir una expresión una vez y reutilizarla en toda la plantilla. Este tutorial se realiza en 7 minutos.

Prerrequisitos

Aunque no es obligatorio, se recomienda realizar el tutorial sobre las funciones.

Debe tener Visual Studio Code instalado y en funcionamiento con la extensión Herramientas de Azure Resource Manager, y Azure PowerShell o la CLI de Azure. Para más información, consulte las herramientas de plantilla.

Revisión de la plantilla

Al final del tutorial anterior, la plantilla tenía el siguiente código archivo JSON:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageName": {
      "type": "string",
      "minLength": 3,
      "maxLength": 24
    },
    "storageSKU": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_RAGRS",
        "Standard_ZRS",
        "Premium_LRS",
        "Premium_ZRS",
        "Standard_GZRS",
        "Standard_RAGZRS"
      ]
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-09-01",
      "name": "[parameters('storageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ]
}

El nombre de la cuenta de almacenamiento de Azure debe ser único para seguir creando fácilmente la plantilla de ARM. Si ha completado los tutoriales anteriores en esta serie, probablemente esté cansado de pensar en un nombre único. Para solucionar este problema, agregue una variable que cree un nombre único para la cuenta de almacenamiento.

Uso de la variable

En el ejemplo siguiente se resaltan los cambios para agregar una variable a la plantilla que crea un nombre de cuenta de almacenamiento único. Copie el archivo completo y reemplace la plantilla por su contenido.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storagePrefix": {
      "type": "string",
      "minLength": 3,
      "maxLength": 11
    },
    "storageSKU": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_RAGRS",
        "Standard_ZRS",
        "Premium_LRS",
        "Premium_ZRS",
        "Standard_GZRS",
        "Standard_RAGZRS"
      ]
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  },
  "variables": {
    "uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-09-01",
      "name": "[variables('uniqueStorageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ]
}

Observe que se incluye una variable llamada uniqueStorageName. Esta variable usa cuatro funciones para crear un valor de cadena.

Ya está familiarizado con la función parameters, por lo que no la examinaremos.

También está familiarizado con la función resourceGroup. En este caso, obtendrá la propiedad id en lugar de la propiedad location, tal como se muestra en el tutorial anterior. La propiedad id devuelve el identificador completo del grupo de recursos, incluido el id. de suscripción y el nombre del grupo de recursos.

La función uniqueString crea un valor hash de 13 caracteres. Los parámetros que se pasan determinan el valor devuelto. En este tutorial, usará el identificador del grupo de recursos como entrada del valor hash. Esto significa que podría implementar esta plantilla en distintos grupos de recursos y obtener un valor de cadena único diferente. Sin embargo, se obtiene el mismo valor si la implementa en el mismo grupo de recursos.

La función concat toma valores y los combina. En el caso de esta variable, toma la cadena del parámetro y la cadena de la función uniqueString y las combina en una cadena.

El parámetro storagePrefix le permite pasar un prefijo que le ayuda a identificar las cuentas de almacenamiento. Puede crear su propia convención de nomenclatura que facilite la identificación de las cuentas de almacenamiento entre una larga lista de recursos después de la implementación.

Por último, observe que el nombre de cuenta de almacenamiento ahora está establecido en la variable en vez de en un parámetro.

Implementar plantilla

Vamos a implementar la plantilla. Implementar esta plantilla es más fácil que las anteriores porque solo se proporciona el prefijo del nombre de la cuenta de almacenamiento.

Si no ha creado el grupo de recursos, consulte Creación del grupo de recursos. En el ejemplo se supone que ha establecido la variable templateFile en la ruta de acceso al archivo de plantilla, como se muestra en el primer tutorial.

New-AzResourceGroupDeployment `
  -Name addnamevariable `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storagePrefix "store" `
  -storageSKU Standard_LRS

Nota

Si se produjo un error en la implementación, use el modificador verbose para obtener información sobre los recursos que se están creando. Utilice el modificador debug para más información sobre la depuración.

Comprobación de la implementación

Para comprobar la implementación, explore el grupo de recursos desde Azure Portal.

  1. Inicie sesión en Azure Portal.
  2. En el menú izquierdo, seleccione Grupos de recursos.
  3. Seleccione el grupo de recursos que necesite.
  4. Observe que el nombre de la cuenta de almacenamiento implementada es store y una cadena de caracteres aleatorios.

Limpieza de recursos

Si va a pasar al siguiente tutorial, no es necesario que elimine el grupo de recursos.

Si va a terminar ya, puede eliminar el grupo de recursos.

  1. En Azure Portal, seleccione Grupos de recursos en el menú de la izquierda.
  2. Escriba el nombre del grupo de recursos en el campo de texto Filtro por cualquier campo....
  3. Active la casilla situada junto a myResourceGroup y seleccione myResourceGroup o el nombre del grupo de recursos.
  4. Seleccione Eliminar grupo de recursos del menú superior.

Pasos siguientes

En este tutorial, ha agregado una variable que crea un nombre único de cuenta de almacenamiento. En el siguiente tutorial, devolverá un valor de la cuenta de almacenamiento implementada.