Ejercicio: Creación e implementación de una pila de implementación con Bicep
Usted está en sprint 1 para la nueva aplicación de depósitos. Quiere probar el proceso de creación de una pila de implementación con recursos administrados en una suscripción de desarrollo. En este ejercicio, creará una pila de implementación con ámbito en un grupo de recursos que haga referencia a un archivo de Bicep. El archivo define un plan de Azure App Service y un servicio de aplicaciones de Azure.
Durante el proceso, hará lo siguiente:
- Creación de un archivo de Bicep que defina la arquitectura inicial
- Cree una pila de implementación con ámbito en un grupo de recursos mediante el archivo de Bicep.
- Revisión de la configuración de la pila de implementación y los recursos administrados
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 del archivo de Bicep
Nuestro primer paso es crear un archivo de Bicep que defina los recursos que usaremos con la pila de implementación.
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). Asegúrese de recordar dónde guardó el archivo. Por ejemplo, podría crear una carpeta plantillas en la que guardar el fichero.
Agrega el código de Bicep siguiente al archivo. Implementará la plantilla pronto. Es recomendable que lo escriba en lugar de copiar y pegar, para que pueda ver cómo las herramientas lo ayudan a escribir los archivos de Bicep.
// Parameters @description('The location for all resources.') param location string = 'eastus' @description('The name of the web application.') param webApplicationName string = 'webapp-${uniqueString(resourceGroup().id)}' // Variables @description('The name of the app service plan.') var appServicePlanName = 'plan-deposits' // Resource - App Service Plan resource appServicePlan 'Microsoft.Web/serverfarms@2023-12-01' = { name: appServicePlanName location: location sku: { name: 'F1' capacity: 1 } } // Resource - Web App resource webApplication 'Microsoft.Web/sites@2023-12-01' = { name: webApplicationName location: location properties: { serverFarmId: appServicePlan.id } }
Tenga en cuenta que va a usar expresiones que incluyen la interpolación de cadenas y la función
uniqueString()
para definir los valores de parámetro predeterminados. Alguien que implemente esta plantilla puede invalidar los valores de parámetro predeterminados especificando los valores en el momento de la implementación, pero no puede invalidar los valores de variable.Observe también que va a usar una variable para el nombre del plan de App Service de Azure, pero que usará parámetros para los demás nombres. Las cuentas de almacenamiento y las aplicaciones de App Service necesitan nombres globalmente únicos, pero los nombres de planes de App Service solo deben ser únicos dentro de su grupo de recursos. Esta diferencia significa que no pasa nada por usar el mismo nombre de plan de App Service en distintas implementaciones, siempre y cuando todas las implementaciones estén en grupos de recursos diferentes.
Guarde los cambios en el archivo.
Creación de la pila de implementación e implementación de los recursos 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 ha instalado las herramientas de la CLI de Azure.
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 mediante la CLI de Azure
En el terminal de Visual Studio Code, inicie sesión en Azure mediante la ejecución del 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.
En la lista, busque la suscripción que desea usar para este ejercicio.
Si ha perdido la lista del inicio de sesión, puede usar el siguiente fragmento de código para enumerar de nuevo las suscripciones.
az account list --output table
Establezca la suscripción predeterminada para todos los comandos de la CLI de Azure que ejecute en esta sesión.
az account set --subscription "Your Subscription Name or ID"
Crear un grupo de recursos
Es necesario crear un grupo de recursos para la pila de implementación y los recursos administrados. Para crear un grupo de recursos, ejecute el siguiente comando desde el terminal en Visual Studio Code.
az group create \
--name rg-depositsApplication \
--location eastus
Para implementar esta plantilla en Azure, inicie sesión en la cuenta de Azure desde el terminal de Visual Studio Code. Asegúrese de que ha instalado Azure PowerShell.
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, inicie sesión en Azure mediante la ejecución del siguiente comando:
Connect-AzAccount
En el explorador que se abre, inicie sesión en su cuenta de Azure.
Para obtener el identificador de la suscripción que desea usar para este ejercicio, ejecute el siguiente comando:
Get-AzSubscription
El identificador de la suscripción es la segunda columna. Copie la segunda columna. Es similar a aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e.
Establezca la suscripción predeterminada para todos los comandos de Azure PowerShell que ejecute en esta sesión.
Set-AzContext -SubscriptionId {Your subscription ID}
Crear un grupo de recursos
Es necesario crear un grupo de recursos para la pila de implementación y los recursos administrados. Para crear un grupo de recursos, ejecute el siguiente comando desde el terminal en Visual Studio Code.
New-AzResourceGroup `
-Name rg-depositsApplication `
-Location eastus
Creación del script de implementación
A continuación, es necesario crear la pila de implementación en el ámbito del grupo de recursos creado recientemente. Para crear la pila de implementación, ejecute el siguiente comando desde el terminal en Visual Studio Code.
az stack group create \
--name stack-deposits \
--resource-group rg-depositsApplication \
--template-file ./main.bicep \
--action-on-unmanage detachAll \
--deny-settings-mode none
New-AzResourceGroupDeploymentStack `
-Name stack-deposits `
-ResourceGroupName rg-depositsApplication `
-TemplateFile ./main.bicep `
-ActionOnUnmanage DetachAll `
-DenySettingsMode None
Comprobar la creación de la pila de implementación y los recursos administrados
Al crear una pila de implementación y sus recursos administrados, puede ver su configuración mediante la línea de comandos o Azure Portal. En este ejercicio, se usa la CLI de Azure. Para ver la configuración de la pila de implementación, ejecute el siguiente comando desde el terminal en Visual Studio Code.
az stack group show \
--resource-group rg-depositsApplication \
--name stack-deposits
Los resultados incluyen las propiedades de la pila de implementación y el estado de los recursos administrados. La salida json debería parecerse a la siguiente imagen:
{
"actionOnUnmanage": {
"managementGroups": "detach",
"resourceGroups": "detach",
"resources": "detach"
},
"bypassStackOutOfSyncError": null,
"correlationId": ".",
"debugSetting": null,
"deletedResources": [],
"denySettings": {
"applyToChildScopes": false,
"excludedActions": null,
"excludedPrincipals": null,
"mode": "none"
},
"deploymentId": "/subscriptions/././rg-depositsApplication/./Microsoft.Resources/deployments/stack-deposits",
"deploymentScope": null,
"description": null,
"detachedResources": [],
"duration": "PT2M53.2734284S",
"error": null,
"failedResources": [],
"id": "/subscriptions/././rg-depositsApplication/./Microsoft.Resources/deploymentStacks/stack-deposits",
"location": null,
"name": "stack-deposits",
"outputs": null,
"parametersLink": null,
"provisioningState": "succeeded",
"resourceGroup": "rg-depositsApplication",
"resources": [
{
"denyStatus": "none",
"id": "/subscriptions/././rg-depositsApplication/././serverfarms/plan-deposits",
"resourceGroup": "rg-depositsApplication",
"status": "managed"
},
{
"denyStatus": "none",
"id": "/subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-eque2jlrboltq",
"resourceGroup": "rg-depositsApplication",
"status": "managed"
}
],
"systemData": {
"createdAt": "2024-01-01T00:00:01.000000+00:00",
"createdBy": "depositsapplication@contoso.com",
"createdByType": "User",
"lastModifiedAt": "2024-01-01T00:00:01.000000+00:00",
"lastModifiedBy": "depositsapplication@contoso.com",
"lastModifiedByType": "User"
},
"tags": {},
"template": null,
"templateLink": null,
"type": "Microsoft.Resources/deploymentStacks"
}
Observe la sección de recursos de la salida. Para cada recurso, muestra su estado como "administrado", su grupo de recursos, su id. de recurso y su configuración de denegación.
Al crear una pila de implementación y sus recursos administrados, puede ver su configuración mediante la línea de comandos o Azure Portal. En este ejercicio, se usa Azure PowerShell. Para ver la configuración de la pila de implementación, ejecute el siguiente comando desde el terminal en Visual Studio Code.
Get-AzResourceGroupDeploymentStack `
-ResourceGroupName rg-depositsApplication `
-Name stack-deposits
Los resultados incluyen las propiedades de la pila de implementación y el estado de los recursos administrados. La salida de PowerShell debería parecerse a la siguiente imagen:
Id : /subscriptions/././rg-depositsApplication/././deploymentStacks/stack-deposits
Name : stack-deposits
ProvisioningState : succeeded
resourcesCleanupAction : detach
resourceGroupsCleanupAction : detach
managementGroupsCleanupAction : detach
CorrelationId : .
DenySettingsMode : none
CreationTime(UTC) : 1/01/2024 0:00:01 AM
DeploymentId : /subscriptions/././rg-depositsApplication/././deployments/stack-deposits
Resources : /subscriptions/././rg-depositsApplication/././serverfarms/plan-deposits
/subscriptions/././rg-depositsApplication/././sites/webapp-eque2jlrboltq
Observe la sección de recursos de la salida. Define los recursos administrados por la pila de implementación. Verá el id. de recurso completo de cada recurso.