更新部署堆疊中的資源
隨著應用程式的發展,其資源也會隨之演變。 如何在新增新服務和功能時更新部署堆疊及其受控資源? 哪些情況需要我們更新部署堆疊?
存款應用程式正在進行重大變更。 必須修改 Azure 資源屬性、需要新增新的資源,且需要移除現有的資源。 您需要深入了解何時更新部署堆疊,以及如何更新現有的受控資源。
在此單元中,您將了解哪些情況需要部署堆疊更新。 您也會了解如何修改部署堆疊所管理的資源。
注意
本單元中的命令僅用於示範概念。 請先不要執行命令。 您很快就會在此練習所學到的內容。
更新部署堆疊
構成應用程式的資源會隨時間變更。 需要修改現有資源的屬性、需要新增或刪除資源,或是應用程式必須整合透過其他方法部署的資源。 部署堆疊可以更新,以實作應用程式中的變更。 哪些情況需要我們更新部署堆疊?
- 修改受控資源的屬性
- 將現有的資源新增為受控資源
- 新增受控資源
- 中斷連結受控資源
- 刪除受控資源
如何實作這些變更? 如上一個課程模組所述,部署堆疊會管理 Bicep 檔案、ARM JSON 範本或範本規格中所定義的資源。當您建立部署堆疊時,系統會參考其中一個檔案來部署資源。 更新部署堆疊的情況也是如此。 若要更新部署堆疊所管理的資源,請更新基礎範本檔案。
更新現有的受控資源
修改部署在 Azure 中的資源是常見的做法。 您可能需要變更資源的屬性值,以納入新功能或增強其功能。 如果您目前使用基礎結構即程式碼在 Azure 中定義資源,您便熟悉如何修改資源的屬性。 使用部署堆疊時,程序會相同。 對 Bicep 檔案中的資源進行變更,並在堆疊上執行更新作業。
讓我們從最後一個課程模組考慮我們的 Bicep 檔案。 我們的檔案會定義 App Service 方案、Web 應用程式和 Azure SQL Server 與資料庫。 我們想要將 App Service 方案的 SKU 從 F1
SKU 修改為 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'
}
}
修改 Bicep 檔案之後,我們想要更新部署堆疊,以便實作對 Bicep 檔案中資源所做的變更。
若要使用 Azure CLI 更新部署堆疊,請使用 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
堆疊更新完成之後,我們想要確認 App Service 方案現在已在 S1
SKU 上執行。
若要使用 Azure CLI 檢視 App Service 方案的組態,請使用 az appservice plan show
命令
az appservice plan show \
--name plan-deposits
--resource-group rg-depositsApplication
輸出會顯示更新成功,且 App Service 方案現在正在 S1
SKU上執行。
"sku": {
"capacity": 1,
"family": "S",
"name": "S1",
"size": "S1",
"tier": "Standard"
},
修改 Bicep 檔案之後,我們想要更新部署堆疊,以便實作對 Bicep 檔案中資源所做的變更。
若要使用 Azure PowerShell 更新部署堆疊,請使用 Set-AzResourceGroupDeploymentStack
命令。
Set-AzResourceGroupDeploymentStack `
-Name stack-deposits `
-ResourceGroupName rg-depositsApplication `
-TemplateFile ./main.bicep `
-ActionOnUnmanage DetachAll `
-DenySettingsMode None
堆疊更新完成之後,我們想要確認 App Service 方案現在已在 S1
SKU 上執行。
若要使用 Azure PowerShell 檢視 App Service 方案的組態,請使用 Get-AzAppServicePlan
命令
$plan = Get-AzAppServicePlan `
-ResourceGroupName rg-depositsApplication `
-Name plan-deposits
$sku = $plan.Sku
$sku
輸出會顯示更新成功,且 App Service 方案現在正在 S1
SKU上執行。
Name : S1
Tier : Standard
Size : S1
Family : S
Capacity : 1