Ejercicio: Adición de parámetros y decoradores
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 también a una suscripción especial llamada Suscripción de Concierge.
Como parte de la migración de la aplicación de RR. HH., va a crear una plantilla de Bicep para implementar recursos de Azure. En este ejercicio, creará una un plan de Azure App Service y una aplicación de App Service. Aplicará decoradores a cada parámetro para asegurarse de que estos siempre contengan los valores previstos.
Durante el proceso, hará estas tareas:
- Crear un archivo de Bicep que incluya parámetros y variables.
- Agregar decoradores a los parámetros.
- Probará la implementación para asegurarse de que la plantilla sea válida.
En este ejercicio se usa la extensión de Bicep para Visual Studio Code. Asegúrese de instalar esta extensión en Visual Studio Code.
Creación de una plantilla de Bicep con parámetros
Abra Visual Studio Code.
Cree un archivo con el nombre main.bicep.
Guarde el archivo vacío para que Visual Studio Code cargue las herramientas de Bicep.
Puede seleccionar Archivo>Guardar como o Ctrl+S en Windows (⌘+S en macOS). Debe acordarse de dónde ha guardado el archivo. Por ejemplo, podría crear una carpeta scripts para guardarlo ahí.
Agregue el siguiente contenido al archivo. Implementará la plantilla pronto. Es recomendable que lo escriba usted mismo en lugar de copiarlo y pegarlo, para que pueda ver cómo las herramientas le ayudan a escribir los archivos de Bicep.
param environmentName string = 'dev' param solutionName string = 'toyhr${uniqueString(resourceGroup().id)}' param appServicePlanInstanceCount int = 1 param appServicePlanSku object = { name: 'F1' tier: 'Free' } param location string = 'eastus' var appServicePlanName = '${environmentName}-${solutionName}-plan' var appServiceAppName = '${environmentName}-${solutionName}-app'
Aquí va a crear varios parámetros, que usan una combinación de tipos. Va a definir valores predeterminados para cada parámetro. Algunos de los valores predeterminados incluyen la interpolación de cadenas y la función
uniqueString()
.Sugerencia
La función
uniqueString()
es útil para crear nombres de recursos únicos globalmente. Devuelve una cadena que es la misma en cada implementación en el mismo grupo de recursos, pero diferente cuando se implementa en suscripciones o grupos de recursos distintos.También va a definir variables que construyen los nombres del plan de Azure App Service y de la aplicación de App Service. Sus valores incluyen algunos de los parámetros que ha especificado. El usuario que ejecuta la implementación puede invalidar los valores de parámetros, pero los valores de las variables no se pueden invalidar.
Sugerencia
Está especificando que el parámetro
location
debe establecerse enwestus3
. Normalmente, crearía recursos en la misma ubicación que el grupo de recursos mediante la propiedadresourceGroup().location
. Pero cuando trabaja con el espacio aislado Microsoft Learn, debe usar determinadas regiones de Azure que no coincidan con la ubicación del grupo de recursos.En el archivo main.bicep en Visual Studio Code, agregue el código siguiente en la parte inferior:
resource appServicePlan 'Microsoft.Web/serverfarms@2024-04-01' = { name: appServicePlanName location: location sku: { name: appServicePlanSku.name tier: appServicePlanSku.tier capacity: appServicePlanInstanceCount } } resource appServiceApp 'Microsoft.Web/sites@2024-04-01' = { name: appServiceAppName location: location properties: { serverFarmId: appServicePlan.id httpsOnly: true } }
Observe que los recursos usan los valores de los parámetros definidos.
Guarde los cambios en el archivo.
Adición de descripciones de los parámetros
En el archivo main.bicep de Visual Studio Code, agregue el decorador
@description
directamente encima de cada parámetro creado en la tarea anterior. Los parámetros deben ser similares a los de este ejemplo:@description('The name of the environment. This must be dev, test, or prod.') param environmentName string = 'dev' @description('The unique name of the solution. This is used to ensure that resource names are unique.') param solutionName string = 'toyhr${uniqueString(resourceGroup().id)}' @description('The number of App Service plan instances.') param appServicePlanInstanceCount int = 1 @description('The name and tier of the App Service plan SKU.') param appServicePlanSku object = { name: 'F1' tier: 'Free' } @description('The Azure region into which the resources should be deployed.') param location string = 'eastus'
Guarde los cambios en el archivo.
Limitación de los valores de entrada
Su empresa de juguetes implementará la aplicación de recursos humanos en tres entornos: dev
, test
y prod
. Limitará el parámetro environmentName
para permitir solo esos tres valores.
En el archivo main.bicep de Visual Studio Code, busque el parámetro
environmentName
. Inserte un decorador@allowed
debajo de su decorador@description
. Cuando haya terminado, el parámetro debe tener un aspecto parecido al de este ejemplo:@description('The name of the environment. This must be dev, test, or prod.') @allowed([ 'dev' 'test' 'prod' ]) param environmentName string = 'dev'
Tenga en cuenta que va a limitar el valor del parámetro
environmentName
solo adev
,test
yprod
. Si se agregan más entornos en el futuro, deberá actualizar esta lista.Guarde los cambios en el archivo.
Limitación de las longitudes de entrada
El parámetro solutionName
se usa para generar los nombres de los recursos. Quiere aplicar una longitud mínima de 5 caracteres y una longitud máxima de 30 caracteres.
En el archivo main.bicep de Visual Studio Code, busque el parámetro
solutionName
. Agregue los decoradores@minLength
y@maxLength
debajo del decorador@description
. Cuando haya terminado, el parámetro debe tener un aspecto parecido al de este ejemplo:@description('The unique name of the solution. This is used to ensure that resource names are unique.') @minLength(5) @maxLength(30) param solutionName string = 'toyhr${uniqueString(resourceGroup().id)}'
Guarde los cambios en el archivo.
Limitación de los valores numéricos
A continuación, se asegurará de que el parámetro appServicePlanInstanceCount
solo admita valores entre 1 y 10.
En el archivo main.bicep de Visual Studio Code, busque el parámetro
appServicePlanInstanceCount
. Agregue los decoradores@minValue
y@maxValue
debajo del decorador@description
. Cuando haya terminado, el parámetro debe tener un aspecto parecido al de este ejemplo:@description('The number of App Service plan instances.') @minValue(1) @maxValue(10) param appServicePlanInstanceCount int = 1
Guarde los cambios en el archivo.
Comprobación del archivo de Bicep
Una vez completados todos los cambios anteriores, el archivo de Bicep debe tener un aspecto parecido al de este ejemplo:
@description('The name of the environment. This must be dev, test, or prod.')
@allowed([
'dev'
'test'
'prod'
])
param environmentName string = 'dev'
@description('The unique name of the solution. This is used to ensure that resource names are unique.')
@minLength(5)
@maxLength(30)
param solutionName string = 'toyhr${uniqueString(resourceGroup().id)}'
@description('The number of App Service plan instances.')
@minValue(1)
@maxValue(10)
param appServicePlanInstanceCount int = 1
@description('The name and tier of the App Service plan SKU.')
param appServicePlanSku object = {
name: 'F1'
tier: 'Free'
}
@description('The Azure region into which the resources should be deployed.')
param location string = 'eastus'
var appServicePlanName = '${environmentName}-${solutionName}-plan'
var appServiceAppName = '${environmentName}-${solutionName}-app'
resource appServicePlan 'Microsoft.Web/serverfarms@2024-04-01' = {
name: appServicePlanName
location: location
sku: {
name: appServicePlanSku.name
tier: appServicePlanSku.tier
capacity: appServicePlanInstanceCount
}
}
resource appServiceApp 'Microsoft.Web/sites@2024-04-01' = {
name: appServiceAppName
location: location
properties: {
serverFarmId: appServicePlan.id
httpsOnly: true
}
}
Si no es así, copie el ejemplo o ajuste la plantilla para que coincida con él.
Implementación de la plantilla de Bicep 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 instalada la CLI de Azure y de que inicia sesión con la misma cuenta que utilizó para activar el espacio aislado.
En el menú Terminal, seleccione Nuevo terminal. Normalmente, la ventana de terminal se abre en la mitad inferior de la pantalla.
Si la ventana del terminal muestra Bash en el lado derecho, significa que el shell correcto ya está abierto. Como alternativa, si ve un icono de shell de Bash a la derecha, puede seleccionarlo para iniciar el shell.
Si apareciera un shell distinto de Bash, seleccione la flecha de la lista desplegable del shell y, a continuación, seleccione Bash de Git.
En el terminal, vaya al directorio donde ha guardado la plantilla. Por ejemplo, si ha guardado la plantilla en la carpeta templates, puede usar este comando:
cd templates
Instalación de Bicep
Ejecute el comando siguiente para asegurarse de que tiene la versión más reciente de Bicep:
az bicep install && az bicep upgrade
Inicio de sesión en Azure
En el terminal de Visual Studio Code, inicie sesión en Azure mediante el siguiente comando:
az login
En el explorador que se abre, inicie sesión en su cuenta de Azure. En el terminal de Visual Studio Code se muestra una lista de las suscripciones asociadas a esta cuenta. Seleccione la suscripción llamada Suscripción de Concierge.
Si ha usado más de un espacio aislado recientemente, es posible que en el terminal se muestre más de una instancia de Suscripción de Concierge. En este caso, siga estos dos pasos para establecer una de las suscripciones como la predeterminada.
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 {identificador de su suscripción} por el identificador más reciente de la Suscripción de Concierge.
az account set --subscription {your subscription ID}
Establecimiento del grupo de recursos predeterminado
Al usar la CLI de Azure, puede establecer el grupo de recursos predeterminado y omitir el parámetro del resto de los comandos de la CLI de Azure de este ejercicio. Establezca el valor predeterminado en el grupo de recursos que se ha creado de forma automática en el entorno del espacio aislado.
az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"
Implementación de la plantilla en Azure con la CLI de Azure
Ejecute el código siguiente desde el terminal en Visual Studio Code para implementar la plantilla de Bicep en Azure. No es necesario especificar los valores de parámetros porque tienen valores predeterminados especificados. Este proceso puede tardar un par de minutos en completarse; después, verá que la implementación se ha realizado correctamente.
az deployment group create --name main --template-file main.bicep
Verá Running...
en el terminal.
Para implementar esta plantilla en Azure, inicie sesión en la cuenta de Azure desde el terminal de Visual Studio Code. Asegúrese de haber instalado Azure PowerShell e inicie sesión en la misma cuenta que ha activado el espacio aislado.
En el menú Terminal, seleccione Nuevo terminal. Normalmente, la ventana de terminal se abre en la mitad inferior de la pantalla.
Si la ventana del terminal muestra pwsh o powershell en el lado derecho, significa que el shell correcto ya está abierto. Como alternativa, si ve un icono de shell de PowerShell a la derecha, puede seleccionarlo para iniciar el shell.
Si aparece un shell distinto de pwsh o PowerShell, seleccione la flecha desplegable del shell y, a continuación, seleccione PowerShell.
En el terminal, vaya al directorio donde ha guardado la plantilla. Por ejemplo, si ha guardado la plantilla en la carpeta templates, puede usar este comando:
Set-Location -Path templates
Instalación de la CLI de Bicep
Para usar Bicep desde Azure PowerShell, instale la CLI de Bicep.
Inicio de sesión en Azure mediante Azure PowerShell
En el terminal de Visual Studio Code, ejecute el comando siguiente:
Connect-AzAccount
Se abre un explorador para que pueda iniciar sesión en la cuenta de Azure. Es posible que el explorador se abra en segundo plano.
Después de iniciar sesión, en el terminal se muestra una lista de las suscripciones asociadas a esta cuenta. Si ha activado el espacio aislado, se muestra una suscripción denominada Suscripción de Concierge. Selecciónelo para el resto del ejercicio.
Si ha usado más de un espacio aislado recientemente, es posible que en el terminal se muestre más de una instancia de Suscripción de Concierge. En este caso, siga estos dos pasos para establecer una de las suscripciones como la predeterminada.
Obtenga el identificador de la suscripción. Al ejecutar el comando siguiente se mostrarán las suscripciones y sus identificadores. Busque
Concierge Subscription
y copie el identificador de la segunda columna. Tiene un aspecto similar aaaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
.Get-AzSubscription
Cambie la suscripción activa a la Suscripción de Concierge. Asegúrese de reemplazar {identificador de la suscripción} por el que ha copiado.
$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
Establecimiento del grupo de recursos predeterminado
Puede establecer el grupo de recursos predeterminado y omitir el parámetro del resto de los comandos de Azure PowerShell de este ejercicio. Establezca este valor predeterminado en el grupo de recursos que se ha creado de forma automática en el entorno del espacio aislado.
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Implementación de la plantilla en Azure mediante PowerShell
Implemente la plantilla en Azure usando el siguiente comando de Azure PowerShell en el terminal. No es necesario especificar los valores de parámetros porque tienen valores predeterminados especificados. Este proceso puede tardar un par de minutos en completarse; después, verá que la implementación se ha realizado correctamente.
New-AzResourceGroupDeployment -Name main -TemplateFile main.bicep
Comprobación de la implementación
Vaya a Azure Portal y asegúrese de que está en la suscripción de espacio aislado:
- 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 izquierdo, seleccione Grupos de recursos.
Seleccione
[nombre del grupo de recursos del espacio aislado] .En la Información general, puede ver la implementación realizada correctamente.
Seleccione 1 correcta para ver los detalles de la implementación.
Seleccione la implementación llamada main para ver qué recursos se han implementado; después, seleccione Detalles de la implementación para expandirla. En este caso, hay una aplicación y un plan de App Service.
En el menú de la izquierda, seleccione Entradas.
Observe que se muestran los parámetros y sus valores.
Deje la página abierta en el explorador. Tendrá que volver a comprobar las implementaciones posteriormente.