Atualizar recursos em uma pilha de implantação

Concluído

À medida que uma aplicação evolui, os seus recursos também evoluem. Como atualizamos uma pilha de implantação e seus recursos gerenciados quando novos serviços e recursos são adicionados? Que situações exigem que atualizemos uma pilha de implantação?

A aplicação de depósitos está a sofrer alterações significativas. As propriedades de recursos do Azure precisam ser modificadas, novos recursos precisam ser adicionados e os recursos existentes precisam ser removidos. Você precisa saber mais sobre quando atualizar uma pilha de implantação e como atualizar os recursos gerenciados existentes.

Nesta unidade, você aprenderá sobre quais situações exigem uma atualização para uma pilha de implantação. Você também aprende a modificar recursos gerenciados por uma pilha de implantação.

Nota

Os comandos nesta unidade são mostrados para ilustrar conceitos. Não execute os comandos ainda. Você vai praticar o que você aprende aqui em breve.

Atualizando uma pilha de implantação

Com o tempo, os recursos que compõem um aplicativo mudam. As propriedades dos recursos existentes precisam ser modificadas, os recursos precisam ser adicionados ou excluídos, ou um aplicativo precisa integrar recursos que foram implantados por meio de outras abordagens. Uma pilha de implantação pode ser atualizada para implementar as alterações em nossos aplicativos. Que situações exigem que atualizemos uma pilha de implantação?

  • Modificando a propriedade de um recurso gerenciado
  • Adicionando um recurso existente como um recurso gerenciado
  • Adicionando um novo recurso gerenciado
  • Desanexando um recurso gerenciado
  • Excluindo um recurso gerenciado

Como são implementadas estas alterações? Como discutimos no último módulo, as pilhas de implantação gerenciam recursos definidos em um arquivo Bicep, modelo JSON ARM ou especificação de modelo. Ao criar uma pilha de implantação, você faz referência a um desses arquivos para implantar seus recursos. O mesmo vale para atualizar uma pilha de implantação. Para atualizar recursos gerenciados por uma pilha de implantação, atualize o arquivo de modelo subjacente.

Atualizando um recurso gerenciado existente

É prática comum modificar seus recursos implantados no Azure. Talvez seja necessário alterar o valor de uma propriedade de um recurso para incorporar um novo recurso ou aprimorar sua funcionalidade. Se você usa atualmente a infraestrutura como código para definir seus recursos no Azure, está familiarizado com como modificar as propriedades de um recurso. Com pilhas de implantação, o processo é idêntico. Faça a alteração no recurso no arquivo Bicep e execute uma operação de atualização na pilha.

Vamos considerar nosso arquivo Bicep do último módulo. Nosso arquivo define um plano de serviço de aplicativo, um aplicativo Web e um servidor SQL e banco de dados do Azure. Queremos modificar a SKU do plano de serviço do aplicativo da F1 SKU para a S1 SKU.

// 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'
  }
}

Com o arquivo Bicep modificado, queremos atualizar a pilha de implantação para que as alterações feitas nos recursos no arquivo Bicep sejam implementadas.

Para atualizar uma pilha de implantação usando a CLI do Azure, use o az stack group create comando.

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

Depois que a atualização da pilha for concluída, queremos verificar se o plano de serviço do aplicativo está sendo executado na S1 SKU.

Para exibir a configuração do plano de serviço de aplicativo usando a CLI do Azure, use o az appservice plan show comando

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

A saída nos mostra que a atualização foi bem-sucedida e o plano de serviço do aplicativo agora está sendo executado na S1 SKU.

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

Com o arquivo Bicep modificado, queremos atualizar a pilha de implantação para que as alterações feitas nos recursos no arquivo Bicep sejam implementadas.

Para atualizar uma pilha de implantação usando o Azure PowerShell, use o Set-AzResourceGroupDeploymentStack comando.

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

Depois que a atualização da pilha for concluída, queremos verificar se o plano de serviço do aplicativo está sendo executado na S1 SKU.

Para exibir a configuração do plano de serviço de aplicativo usando o Azure PowerShell, use o Get-AzAppServicePlan comando

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

A saída nos mostra que a atualização foi bem-sucedida e o plano de serviço do aplicativo agora está sendo executado na S1 SKU.

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