Aktualizowanie zasobów w stosie wdrożenia

Ukończone

W miarę rozwoju aplikacji jej zasoby. Jak zaktualizować stos wdrożenia i jego zarządzane zasoby po dodaniu nowych usług i funkcji? Jakie sytuacje wymagają zaktualizowania stosu wdrożenia?

Aplikacja depozytów przechodzi znaczącą zmianę. Właściwości zasobów platformy Azure należy zmodyfikować, należy dodać nowe zasoby, a istniejące zasoby należy usunąć. Musisz dowiedzieć się więcej o tym, kiedy zaktualizować stos wdrożenia i jak zaktualizować istniejące zasoby zarządzane.

W tej lekcji dowiesz się, w jakich sytuacjach jest wywoływana aktualizacja stosu wdrożenia. Dowiesz się również, jak modyfikować zasoby zarządzane przez stos wdrożenia.

Uwaga

Polecenia w tej lekcji są wyświetlane w celu zilustrowania pojęć. Nie uruchamiaj jeszcze poleceń. Będziesz ćwiczyć to, czego nauczysz się tutaj wkrótce.

Aktualizowanie stosu wdrożenia

W czasie zasoby tworzące aplikację zmieniają się. Właściwości istniejących zasobów należy zmodyfikować, zasoby muszą zostać dodane lub usunięte albo aplikacja musi zintegrować zasoby wdrożone za pomocą innych metod. Stos wdrożenia można zaktualizować w celu zaimplementowania zmian w naszych aplikacjach. Jakie sytuacje wymagają zaktualizowania stosu wdrożenia?

  • Modyfikowanie właściwości zasobu zarządzanego
  • Dodawanie istniejącego zasobu jako zasobu zarządzanego
  • Dodawanie nowego zasobu zarządzanego
  • Odłączanie zasobu zarządzanego
  • Usuwanie zasobu zarządzanego

W jaki sposób te zmiany są implementowane? Jak omówiono w ostatnim module, stosy wdrażania zarządzają zasobami zdefiniowanymi w pliku Bicep, szablonie JSON usługi ARM lub specyfikacji szablonu. Podczas tworzenia stosu wdrażania należy odwołać się do jednego z tych plików w celu wdrożenia zasobów. To samo dotyczy aktualizowania stosu wdrożenia. Aby zaktualizować zasoby zarządzane przez stos wdrożenia, zaktualizuj źródłowy plik szablonu.

Aktualizowanie istniejącego zasobu zarządzanego

Typowym rozwiązaniem jest modyfikowanie zasobów wdrożonych na platformie Azure. Może być konieczne zmianę wartości właściwości zasobu w celu uwzględnienia nowej funkcji lub zwiększenia jej funkcjonalności. Jeśli obecnie używasz infrastruktury jako kodu do definiowania zasobów na platformie Azure, wiesz, jak modyfikować właściwości zasobu. W przypadku stosów wdrażania proces jest identyczny. Wprowadź zmianę zasobu w pliku Bicep i uruchom operację aktualizacji na stosie.

Rozważmy nasz plik Bicep z ostatniego modułu. Nasz plik definiuje plan usługi App Service, aplikację internetową oraz serwer i bazę danych Azure SQL. Chcemy zmodyfikować jednostkę SKU planu usługi App Service z F1 jednostki SKU do S1 jednostki 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'
  }
}

Po zmodyfikowaniu pliku Bicep chcemy zaktualizować stos wdrożenia, aby zmiany wprowadzone w zasobach w pliku Bicep zostały zaimplementowane.

Aby zaktualizować stos wdrożenia przy użyciu interfejsu wiersza polecenia platformy az stack group create Azure, użyj polecenia .

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

Po zakończeniu aktualizacji stosu chcemy sprawdzić, czy plan usługi App Service jest teraz uruchomiony na jednostce S1 SKU.

Aby wyświetlić konfigurację planu usługi App Service przy użyciu interfejsu wiersza polecenia platformy az appservice plan show Azure, użyj polecenia

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

Dane wyjściowe pokazują, że aktualizacja zakończyła się pomyślnie, a plan usługi App Service jest teraz uruchomiony w jednostce S1 SKU.

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

Po zmodyfikowaniu pliku Bicep chcemy zaktualizować stos wdrożenia, aby zmiany wprowadzone w zasobach w pliku Bicep zostały zaimplementowane.

Aby zaktualizować stos wdrożenia przy użyciu programu Azure PowerShell, użyj Set-AzResourceGroupDeploymentStack polecenia .

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

Po zakończeniu aktualizacji stosu chcemy sprawdzić, czy plan usługi App Service jest teraz uruchomiony na jednostce S1 SKU.

Aby wyświetlić konfigurację planu usługi App Service przy użyciu programu Azure PowerShell, użyj Get-AzAppServicePlan polecenia

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

Dane wyjściowe pokazują, że aktualizacja zakończyła się pomyślnie, a plan usługi App Service jest teraz uruchomiony w jednostce S1 SKU.

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