Aktualizowanie zasobów w stosie wdrożenia
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