Ejercicio: uso de funciones de Azure Resource Manager para crear expresiones

Completado

Nota:

La primera vez que active un espacio aislado y acepte los términos, la cuenta de Microsoft se asocia a un nuevo directorio de Azure denominado Espacio aislado de Microsoft Learn. Se le agrega a una suscripción especial llamada Suscripción de Concierge.

En este ejercicio, creará una expresión mediante funciones de plantilla de Azure Resource Manager (ARM). La expresión crea un nombre único para cada grupo de recursos mediante la combinación de una entrada de prefijo con un hash del identificador de grupo de recursos. Da como resultado nombres de cuenta de almacenamiento de Azure como dev2hu6sbtr5 y staging5his8hgr67.

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

Creación del archivo de plantilla de ARM

En el módulo anterior, ha creado una plantilla de Resource Manager que ha implementado una cuenta de almacenamiento. A ese archivo le ha agregado parámetros y una salida. Aquí empezará con ese archivo, pero para reducir la sobrecarga se ha quitado la salida.

  1. Abra Visual Studio Code y cree un archivo denominado azuredeploy.json. Si ya tiene ese archivo del módulo anterior, puede usarlo.

  2. Reemplace el contenido del archivo por el código siguiente:

    {
        "$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"
                ]
            }
       },
        "functions": [],
        "variables": {},
        "resources": [{
            "name": "[parameters('storageName')]",
            "type": "Microsoft.Storage/storageAccounts",
            "apiVersion": "2019-06-01",
            "tags": {
                "displayName": "[parameters('storageName')]"
            },
            "location": "[resourceGroup().location]",
            "kind": "StorageV2",
            "sku": {
             "name": "[parameters('storageSKU')]"
           }
        }],
         "outputs": {}
    }
    
  3. Si no completó el módulo anterior, dedique un momento a revisar este archivo. Fíjese en el parámetro storageName. Se usa para pasar un nombre único para la cuenta de almacenamiento.

Creación de una expresión para establecer un nombre único para la cuenta de almacenamiento

En vez de pasar el nombre de la cuenta de Azure Storage, puede cambiar el parámetro para que se tome un prefijo para el nombre de dicha cuenta. Este parámetro se pasará a la función concat de la expresión.

  1. En la sección parameters, cambie storageName por storagePrefix.

  2. Cambie el valor del atributo maxLength: del parámetro storagePrefix11. La longitud máxima del nombre de una cuenta de almacenamiento es de 24, así que debe asegurarse de que el hash agregado a partir de la función que ha creado provoque que el nombre supere los 24 caracteres.

  3. Cree la expresión para establecer un nombre único para la cuenta de almacenamiento. En la sección resources, cambie el valor de los atributos name: y displayName: de "[parameters('storageName')]" a "[toLower(concat(parameters("storagePrefix"),uniqueString(resourceGroup().id)))]". En la unidad anterior ha obtenido información sobre esta expresión. Ahora 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"
                ]
            }
       },
        "functions": [],
        "variables": {},
        "resources": [{
            "name": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]",
            "type": "Microsoft.Storage/storageAccounts",
            "apiVersion": "2019-06-01",
            "tags": {
                "displayName": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]"
            },
            "location": "[resourceGroup().location]",
            "kind": "StorageV2",
            "sku": {
             "name": "[parameters('storageSKU')]"
           }
        }],
        "outputs": {}
    }
    

Implementación de la plantilla de ARM en Azure

Para implementar esta plantilla en Azure, debe iniciar sesión en la cuenta de Azure desde el terminal de Visual Studio Code. Asegúrese de que tiene instaladas las herramientas de la CLI de Azure. Además, asegúrese de que ha iniciado sesión en la misma cuenta con la que ha activado el espacio aislado.

  1. Abra una ventana de terminal mediante el menú Terminal.

  2. Si el menú desplegable del lado derecho de la ventana de terminal indica bash, tiene el shell correcto desde el que trabajar. Puede ir a la sección siguiente.

    Captura de pantalla en la que se muestra la ventana de terminal de Visual Studio Code con bash en el menú desplegable.

  3. Si no tiene el shell adecuado, seleccione Seleccionar el shell predeterminado en el menú desplegable.

  4. Seleccione bash:

    Captura de pantalla en la que se muestra la lista de selección de shell en la ventana de terminal de Visual Studio Code.

  5. Seleccione + en el terminal para crear un terminal con bash como shell.

Inicio de sesión en Azure

  1. Desde el terminal de Visual Studio Code, ejecute el comando siguiente para iniciar sesión en Azure. Al ejecutar este comando, se abrirá un explorador que le permite iniciar sesión en la cuenta:

    az login
    
  2. Después de iniciar sesión, verá una lista de las suscripciones asociadas a esta cuenta en el terminal. Si ha activado el espacio aislado, verá una denominada Suscripción de Concierge. Úsela para el resto del ejercicio.

  3. Establezca la suscripción predeterminada para todos los comandos de la CLI de Azure que ejecute en esta sesión:

    az account set --subscription "Concierge Subscription"
    

    Nota:

    Si ha usado más de un espacio aislado recientemente, es posible que aparezca más de una Suscripción de Concierge. En ese caso, siga los dos pasos siguientes para establecer la suscripción predeterminada. Si el comando anterior se ha ejecutado correctamente, omita los dos pasos siguientes.

  4. Obtenga los identificadores de la Suscripción de Concierge:

     az account list \
       --refresh \
       --query "[?contains(name, 'Concierge Subscription')].id" \
       --output table
    
  5. Establezca la suscripción predeterminada con el identificador de la suscripción. Reemplace {your subscription ID} por el identificador de la Suscripción de Concierge más reciente.

    az account set --subscription {your subscription ID}
    

Establecimiento del grupo de recursos predeterminado

  • Establezca el grupo de recursos predeterminado en el que se le creó en el entorno del espacio aislado. De este modo puede omitir ese parámetro del resto de los comandos de la CLI de Azure de este ejercicio.

    az configure --defaults group=<rgn>[sandbox resource group name]</rgn>
    

Implementación de la plantilla en Azure

Ha obtenido información sobre los comandos de implementación del módulo anterior. Aquí, se usará el comando az deployment group create de la CLI de Azure.

  • Implemente la plantilla mediante los comandos de la CLI de Azure en el terminal de Visual Studio Code. No olvide reemplazar {your-prefix} por otra cadena. Por ejemplo, podría usar storage.

    templateFile="azuredeploy.json"
    today=$(date +"%d-%b-%Y")
    DeploymentName="addfunction-"$today
    
    az deployment group create \
      --name $DeploymentName \
      --template-file $templateFile \
      --parameters storagePrefix={your-prefix}
    

    En la primera sección de este código, establezca las variables de la CLI de Azure para la ruta de acceso al archivo de la plantilla que quiera implementar, así como el nombre de la implementación. Después, use el comando az deployment group create para implementar la plantilla en Azure.

    Debería ver el mensaje Running... en el terminal.

Para implementar esta plantilla en Azure, debe iniciar sesión en la cuenta de Azure desde el terminal de Visual Studio Code. Asegúrese de que tiene instaladas las herramientas de Azure PowerShell y de que inicia sesión en la misma cuenta con la que ha activado el espacio aislado.

  1. Abra una ventana de terminal mediante el menú Terminal.

  2. Si el menú desplegable del lado derecho de la ventana de terminal indica pwsh, tiene el shell correcto desde el que trabajar. Puede ir a la sección siguiente.

    Captura de pantalla en la que se muestra la ventana de terminal de Visual Studio Code con pwsh en el menú desplegable.

  3. Si no tiene el shell adecuado, seleccione Seleccionar el shell predeterminado en el menú desplegable.

  4. Seleccione pwsh.

    Captura de pantalla en la que se muestra la lista de selección de shell en la ventana de terminal de Visual Studio Code.

  5. Seleccione + en el terminal para crear un terminal con pwsh como shell.

Inicio de sesión en Azure mediante Azure PowerShell

  1. Desde el terminal de Visual Studio Code, ejecute el comando siguiente para iniciar sesión en Azure. Al ejecutar este comando, se le pedirá que abra un explorador por una dirección URL que le permita iniciar sesión en la cuenta. Use el código que se encuentra en el mensaje. Asegúrese de iniciar sesión con la misma cuenta que ha usado para activar el espacio aislado.

    Connect-AzAccount
    
  2. Después de iniciar sesión, verá una lista de las suscripciones asociadas a esta cuenta en el terminal. Si ha activado el espacio aislado, verá una denominada Suscripción de Concierge. Úsela para el resto del ejercicio.

    Establezca la suscripción predeterminada para todos los comandos de la CLI de Azure que ejecute en esta sesión.

  3. Obtenga el identificador de la suscripción. El comando enumera las suscripciones y sus identificadores. El identificador de la suscripción es la segunda columna. Busque Concierge Subscription y copie la segunda columna. Es similar a aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e.

    Get-AzSubscription
    
  4. Cambie la suscripción activa a la Suscripción de Concierge. Asegúrese de reemplazar {Your subscription ID} por el identificador que acaba de copiar.

    $context = Get-AzSubscription -SubscriptionId {Your subscription ID}
    Set-AzContext $context
    
  5. Establezca el grupo de recursos predeterminado en el que se ha creado de forma automática en el entorno del espacio aislado. De ese modo puede omitir ese parámetro del resto de los comandos de Azure PowerShell en este ejercicio.

    Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
    

Implementación de la plantilla en Azure

Ha obtenido información sobre los comandos de implementación del módulo anterior. Aquí, se usará el comando New-AzResourceGroupDeployment de Azure PowerShell.

  • Implemente la plantilla mediante los comandos de Azure PowerShell en el terminal de Visual Studio Code. No olvide reemplazar {your-prefix} por otra cadena. Por ejemplo, podría usar storage.

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

En la primera sección de este código, establezca las variables de la CLI de Azure para la ruta de acceso al archivo de la plantilla que quiera implementar, así como el nombre de la implementación. Después, use el comando New-AzResourceGroupDeployment para implementar la plantilla en Azure.

Comprobación de la implementación

Cuando termine la implementación, vaya a Azure y asegúrese de que está en la suscripción del espacio aislado. Para comprobar la suscripción, seleccione el avatar en la esquina superior derecha de la página. Seleccione Cambiar directorio. En la lista, seleccione el directorio Espacio aislado de Microsoft Learn.

  1. En el panel de la izquierda, seleccione Grupos de recursos.

  2. Seleccione [nombre del grupo de recursos del espacio aislado].

  3. En la sección Información general, verá que esa implementación se ha realizado correctamente:

    Captura de pantalla de Azure Portal en la que se muestra la información general del grupo de recursos. En la sección Implementaciones se muestra que una implementación se ha realizado correctamente.

  4. Seleccione 1 correcta para ver los detalles de la implementación:

    Captura de pantalla de Azure Portal en la que se muestran las implementaciones. Una implementación se indica con el estado Correcto.

  5. Seleccione addfunction para ver qué recursos se han implementado:

    Captura de pantalla de Azure Portal en la que se muestra que la cuenta de almacenamiento se ha implementado.

  6. Deje abierta la página en el explorador para que pueda volver a comprobar las implementaciones más adelante en el módulo.