Atualizar recursos em uma pilha de implantação

Concluído

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

O aplicativo de depósitos está passando por uma alteração significativa. As propriedades de recurso 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 aprenderá a modificar recursos gerenciados por uma pilha de implantação.

Observação

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

Atualização de uma pilha de implantação

Com o tempo, os recursos que compõem um aplicativo são alterados. 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. Quais situações exigem que atualizemos uma pilha de implantação?

  • Modificar a propriedade de um recurso gerenciado
  • Adicionar um recurso existente como um recurso gerenciado
  • Adicionar um novo recurso gerenciado
  • Desanexar um recurso gerenciado
  • Excluir um recurso gerenciado

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

Atualizar um recurso gerenciado existente

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

Vamos considerar o nosso arquivo Bicep do último módulo. Nosso arquivo define um plano do serviço de aplicativo, um aplicativo Web e um servidor SQL do Azure e um banco de dados. Queremos modificar o SKU do plano do serviço de aplicativo do SKU F1 para o 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'
  }
}

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 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

Depois que a atualização da pilha for concluída, queremos verificar se o plano do serviço de aplicativo agora está em execução no SKU S1.

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

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 do serviço de aplicativo agora está em execução no SKU S1.

"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 comando.Set-AzResourceGroupDeploymentStack.

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 do serviço de aplicativo agora está em execução no SKU S1.

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

$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 do serviço de aplicativo agora está em execução no SKU S1.

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