Ejercicio: uso de archivos de parámetros y etiquetas Azure Resource Manager

Completado

En este ejercicio, agregará etiquetas que le ayudarán a organizar y realizar el seguimiento de los recursos de Microsoft Azure. También usará un archivo de parámetros de plantilla de Azure Resource Manager (ARM) a fin de permitir diferentes configuraciones de parámetros para cada implementación.

En este ejercicio se utilizan las herramientas de Azure Resource Manager para Visual Studio Code. Asegúrese de instalar esta extensión en Visual Studio Code.

Creación de una etiqueta para realizar el seguimiento del proyecto y el entorno de implementación de recursos

En primer lugar, cree un parámetro para usarlo como etiqueta de recurso en la plantilla.

  1. En el archivo azuredeploy.json de Visual Studio Code, coloque el cursor después de la llave de cierre del parámetro storageSKU. Agregue una coma y presione Entrar.

  2. Escriba par. Verá una lista de fragmentos de código relacionados.

  3. Seleccione arm-param. Recuerde que esta acción agrega un parámetro genérico a la plantilla. Su aspecto es similar a este código:

    "parameter1": {
        "type": "string",
        "metadata": {
            "description": "description"
        }
    
  4. Cambie parameter1 por resourceTags y el valor de "type": por object. Recuerde que los parámetros pueden tener los tipos de datos string, secureString, int, bool, object, secureObject y array. En el resumen de este módulo encontrará un vínculo a la sintaxis de ejemplo de estos tipos de parámetro.

  5. Agregue un atributo denominado defaultValue: y establezca el valor en {"Entorno": "Desarrollo", "Proyecto": "Tutorial"}.

    El bloque de parámetros debería ser similar a este código:

    "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"
            ]
        },
        "resourceTags": {
        "type": "object",
        "defaultValue": {
            "Environment": "Dev",
            "Project": "Tutorial"
            }
        }
    },
    
  6. Use este parámetro para etiquetar el recurso de cuenta de almacenamiento. Cambie el atributo tags: en la definición del recurso:

    "tags": "[parameters('resourceTags')]",
    
  7. El archivo debería tener este aspecto:

    {
        "$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"
                ]
            },
            "resourceTags": {
            "type": "object",
            "defaultValue": {
                "Environment": "Dev",
                "Project": "Tutorial"
            }
        }
       },
        "functions": [],
        "variables": {
        "uniqueStorageName": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]"
      },
        "resources": [{
            "name": "[variables('uniqueStorageName')]",
            "type": "Microsoft.Storage/storageAccounts",
            "apiVersion": "2019-06-01",
            "tags": "[parameters('resourceTags')]",
            "location": "[resourceGroup().location]",
            "kind": "StorageV2",
            "sku": {
             "name": "[parameters('storageSKU')]"
           }
        }],
        "outputs": {}
    }
    
  8. Guarde el archivo.

Implementación de la plantilla de ARM con etiquetas actualizadas

  • Implemente la plantilla de ARM actualizada en Azure. Asegúrese de usar el mismo valor storagePrefix que antes.

    templateFile="azuredeploy.json"
    today=$(date +"%d-%b-%Y")
    DeploymentName="updateTags-"$today
    
    az deployment group create \
        --name $DeploymentName \
        --template-file $templateFile \
        --parameters storagePrefix={your-Prefix} storageSKU=Standard_LRS
    
  • Implemente la plantilla de Resource Manager actualizada en Azure. Asegúrese de usar el mismo valor storagePrefix que antes.

    $templateFile = "azuredeploy.json"
    $today=Get-Date -Format "MM-dd-yyyy"
    $deploymentName="updateTags-"+"$today"
    New-AzResourceGroupDeployment `
      -Name $deploymentName `
      -TemplateFile $templateFile `
      -storagePrefix {your storagePrefix} `
      -storageSKU Standard_LRS
    

Comprobación de que las etiquetas nuevas están en la implementación

  1. En Azure, seleccione el grupo de recursos [nombre del grupo de recursos del espacio aislado] y, después, seleccione la cuenta de almacenamiento que ha implementado.

  2. Observe las etiquetas Entorno: Desarrollo y Proyecto: Tutorial:

    Screenshot of the Azure portal that shows the selected tags in the Storage account Overview page.

Uso de un archivo de parámetros

Actualmente, cada vez que implementa esta plantilla tiene que rellenar tres parámetros. Cada usuario de la plantilla puede crear un archivo que contenga los valores de sus parámetros. Aquí se crea un archivo de parámetros para usar con la plantilla.

  1. En Visual Studio Code, cree otro archivo. Asígnele el nombre azuredeploy.parameters.dev.json.

  2. En este archivo, se agregan los valores para los parámetros de plantilla que quiere incluir en la plantilla para el entorno de desarrollo. Cambie un valor de etiqueta para ver que la implementación realiza un cambio. Por ejemplo, puede cambiar projectName por Learn:

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "storagePrefix": {
          "value": "{unique-prefix}"
        },
        "storageSKU": {
          "value": "Standard_LRS"
        },
        "resourceTags": {
          "value": {
            "Environment": "Dev",
            "Project": "Learn"
          }
        }
      }
    }
    
  3. Asegúrese de reemplazar {unique-prefix} por el prefijo único.

  4. Guarde el archivo.

Implementación de la plantilla con el archivo de parámetros

En esta sección, implementará la plantilla de Resource Manager y especificará el archivo de parámetros que se va a usar.

  1. En el terminal de Visual Studio Code, ejecute estos comandos de la CLI de Azure:

    templateFile="azuredeploy.json"
    devParameterFile="azuredeploy.parameters.dev.json"
    today=$(date +"%d-%b-%Y")
    DeploymentName="addParameterFile-"$today
    
    az deployment group create \
      --name $DeploymentName \
      --template-file $templateFile \
      --parameters $devParameterFile
    
  2. Compruebe en Azure que la implementación se ha realizado correctamente y que el valor de la etiqueta ha cambiado:

    Screenshot of the Azure portal that shows the updated tag values in the Storage account Overview page.

  3. Como reto, cree un archivo de parámetros para el entorno de producción. Cambie la ruta de acceso del archivo de parámetros cuando ejecute el comando para realizar la implementación en el entorno de producción.

  1. En el terminal de Visual Studio Code, ejecute estos comandos de Azure PowerShell:

    $templateFile = "azuredeploy.json"
    $parameterFile="azuredeploy.parameters.dev.json"
    $today=Get-Date -Format "MM-dd-yyyy"
    $deploymentName="addParameterFile-"+"$today"
    New-AzResourceGroupDeployment `
      -Name $deploymentName `
      -TemplateFile $templateFile `
      -TemplateParameterFile $parameterFile
    
  2. Compruebe en Azure que la implementación se ha realizado correctamente y que el valor de la etiqueta ha cambiado:

    Screenshot of the Azure portal that shows the updated tag values in the Storage account Overview page.

  3. Como reto, cree un archivo de parámetros para el entorno de producción. Cambie la ruta de acceso del archivo de parámetros cuando ejecute el comando para realizar la implementación en el entorno de producción.