Actualización de recursos en una pila de implementación

Completado

A medida que evoluciona una aplicación, también lo hacen sus recursos. ¿Cómo actualizamos una pila de implementación y sus recursos administrados cuando se agregan nuevos servicios y características? ¿Qué situaciones requieren que actualicemos una pila de implementación?

La solicitud de depósitos está experimentando cambios significativos. Es necesario modificar las propiedades de recursos de Azure, se deben agregar nuevos recursos y se deben quitar los recursos existentes. Debe obtener más información sobre cuándo actualizar una pila de implementación y cómo actualizar los recursos administrados existentes.

En esta unidad, aprenderá en qué situaciones es necesario actualizar una pila de implementación. También aprenderá a modificar los recursos administrados por una pila de implementación.

Nota:

Los comandos de esta unidad se muestran para ilustrar conceptos. No los ejecute todavía. Pronto va a practicar lo que aprenderá aquí.

Actualización de una pila de implementación

Con el tiempo, los recursos que componen una aplicación cambian. Es necesario modificar las propiedades de los recursos existentes, agregar o eliminar recursos o integrar en una aplicación recursos implementados con otros métodos. Se puede actualizar una pila de implementación para implementar los cambios en nuestras aplicaciones. ¿Qué situaciones requieren que actualicemos una pila de implementación?

  • Modificación de la propiedad de un recurso administrado
  • Adición de un recurso existente como un recurso administrado
  • Adición de un nuevo recurso administrado
  • Desasociación de un recurso administrado
  • Eliminación de un recurso administrado

¿Cómo se implementan estos cambios? Como se explicó en el último módulo, las pilas de implementación administran los recursos definidos en un archivo de Bicep, una plantilla JSON de ARM o una especificación de plantilla. Al crear una pila de implementación, se hace referencia a uno de estos archivos para implementar los recursos. Lo mismo sucede para actualizar una pila de implementación. Para actualizar los recursos administrados por una pila de implementación, actualice el archivo de plantilla subyacente.

Actualización de un recurso administrado existente

Es habitual modificar los recursos implementados en Azure. Es posible que tenga que cambiar un valor de propiedad de un recurso para incorporar una nueva característica o mejorar su funcionalidad. Si actualmente usa infraestructura como código para definir los recursos en Azure, ya sabe cómo se modifican las propiedades de un recurso. Con las pilas de implementación, el proceso es idéntico. Realice el cambio en el recurso de su archivo Bicep y ejecute una operación de actualización en la pila.

Consideremos nuestro archivo Bicep del último módulo. Nuestro archivo define un plan de App Service, una aplicación web y una base de datos y un servidor de Azure SQL. Queremos modificar la SKU del plan de App Service de la SKU F1 a la SKU S1.

// Parameters
@description('The location for all resources.')
param location string = 'eastus'

@description('The name of the SQL database.')
param sqlDatabaseName string = 'sqldb-${uniqueString(resourceGroup().id)}'

@description('The password of the admin user.')
param sqlServerAdminUserName string

@description('The name of the admin user.')
@secure()
param sqlServerAdminPassword string

@description('The name of the SQL server.')
param sqlServerName string = 'sql-${uniqueString(resourceGroup().id)}'

@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: 'S1'
    capacity: 1
  }
}

// Resource - Web App
resource webApplication 'Microsoft.Web/sites@2023-12-01' = {
  name: webApplicationName
  location: location
  properties: {
    serverFarmId: appServicePlan.id
  }
}

// Resource - SQL Server
resource sqlServer 'Microsoft.Sql/servers@2021-11-01' ={
  name: sqlServerName
  location: location
  properties: {
    administratorLogin: sqlServerAdminUserName
    administratorLoginPassword: sqlServerAdminPassword
  }
}

// Resource - SQL Database
resource sqlServerDatabase 'Microsoft.Sql/servers/databases@2021-11-01' = {
  parent: sqlServer
  name: sqlDatabaseName
  location: location
  sku: {
    name: 'Standard'
    tier: 'Standard'
  }
}

Con el archivo Bicep modificado, queremos actualizar la pila de implementación para que se implementen los cambios realizados en los recursos del archivo Bicep.

Para actualizar una pila de implementación mediante la CLI de Azure, use el comando az stack group create.

az stack group create \
    --name stack-deposits \
    --resource-group rg-depositsApplication \
    --template-file ./main.bicep \
    --action-on-unmanage detachAll \
    --deny-settings-mode none

Una vez completada la actualización de la pila, queremos comprobar que el plan de App Service ahora se está ejecutando en la SKU S1.

Para ver la configuración del plan de App Service mediante la CLI de Azure, use el comando az appservice plan show.

az appservice plan show \
    --name plan-deposits
    --resource-group rg-depositsApplication

La salida nos muestra que la actualización se realizó correctamente y que el plan de App Service ahora se está ejecutando en la SKU S1.

"sku": {
    "capacity": 1,
    "family": "S",
    "name": "S1",
    "size": "S1",
    "tier": "Standard"
},

Con el archivo Bicep modificado, queremos actualizar la pila de implementación para que se implementen los cambios realizados en los recursos del archivo Bicep.

Para actualizar una pila de implementación mediante Azure PowerShell, use el comando Set-AzResourceGroupDeploymentStack.

Set-AzResourceGroupDeploymentStack `
    -Name stack-deposits `
    -ResourceGroupName rg-depositsApplication `
    -TemplateFile ./main.bicep `
    -ActionOnUnmanage DetachAll `
    -DenySettingsMode None

Una vez completada la actualización de la pila, queremos comprobar que el plan de App Service ahora se está ejecutando en la SKU S1.

Para ver la configuración del plan de App Service mediante Azure PowerShell, use el comando Get-AzAppServicePlan.

$plan = Get-AzAppServicePlan `
    -ResourceGroupName rg-depositsApplication `
    -Name plan-deposits
$sku = $plan.Sku
$sku

La salida nos muestra que la actualización se realizó correctamente y que el plan de App Service ahora se está ejecutando en la SKU S1.

Name         : S1
Tier         : Standard
Size         : S1
Family       : S
Capacity     : 1