Ejercicio: uso de funciones de Azure Resource Manager para crear expresiones
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.
Abra Visual Studio Code y cree un archivo denominado azuredeploy.json. Si ya tiene ese archivo del módulo anterior, puede usarlo.
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": {} }
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.
En la sección
parameters
, cambiestorageName
por storagePrefix.Cambie el valor del atributo
maxLength:
del parámetrostoragePrefix
a 11. 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.Cree la expresión para establecer un nombre único para la cuenta de almacenamiento. En la sección
resources
, cambie el valor de los atributosname:
ydisplayName:
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.
Abra una ventana de terminal mediante el menú Terminal.
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.
Si no tiene el shell adecuado, seleccione Seleccionar el shell predeterminado en el menú desplegable.
Seleccione bash:
Seleccione + en el terminal para crear un terminal con bash como shell.
Inicio de sesión en Azure
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
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:
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.
Obtenga los identificadores de la Suscripción de Concierge:
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
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.
Abra una ventana de terminal mediante el menú Terminal.
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.
Si no tiene el shell adecuado, seleccione Seleccionar el shell predeterminado en el menú desplegable.
Seleccione pwsh.
Seleccione + en el terminal para crear un terminal con pwsh como shell.
Inicio de sesión en Azure mediante Azure PowerShell
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
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.
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 aaaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
.Get-AzSubscription
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
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.
En el panel de la izquierda, seleccione Grupos de recursos.
Seleccione
[nombre del grupo de recursos del espacio aislado] .En la sección Información general, verá que esa implementación se ha realizado correctamente:
Seleccione 1 correcta para ver los detalles de la implementación:
Seleccione addfunction para ver qué recursos se han implementado:
Deje abierta la página en el explorador para que pueda volver a comprobar las implementaciones más adelante en el módulo.