デプロイ スタック内のリソースを更新する
アプリケーションが進化するにつれて、そのリソースも進化します。 新しいサービスと機能が追加されたときに、デプロイ スタックとその管理対象リソースを更新するにはどうすればよいですか? デプロイ スタックを更新する必要があるのはどのような状況ですか?
預金アプリケーションには大きな変更が施されている最中です。 Azure リソース プロパティの変更と、新しいリソースの追加と、既存リソースの削除を行う必要があります。 デプロイ スタックを更新するタイミングと、既存のマネージド リソースを更新する方法の詳細を学習する必要があります。
このユニットでは、どのような状況でデプロイ スタックの更新が必要になるかについて学習します。 また、デプロイ スタックによって管理されるリソースを変更する方法も学習します。
Note
このユニットのコマンドは、概念を説明するために示されています。 コマンドはまだ実行しないでください。 ここで学習した内容をすぐに練習します。
デプロイ スタックの更新
時間の経過とともに、アプリケーションを構成するリソースは変化します。 既存リソースのプロパティを変更する必要があったり、リソースを追加または削除する必要があったり、アプリケーションが他のアプローチを通してデプロイされたリソースを統合する必要があったりします。 デプロイ スタックは、アプリケーション内の変更を実装するために更新できます。 デプロイ スタックを更新する必要があるのはどのような状況ですか?
- マネージド リソースのプロパティの変更
- マネージド リソースとしての既存リソースの追加
- 新しいマネージド リソースの追加
- マネージド リソースのデタッチ
- マネージド リソースの削除
これらの変更はどのように実装されますか? 前のモジュールで説明したように、デプロイ スタックは、Bicep ファイル、ARM JSON テンプレート、またはテンプレート スペック内で定義されているリソースを管理します。デプロイ スタックを作成するときは、これらのファイルのいずれかを参照してリソースをデプロイします。 デプロイ スタックを更新する場合も同様です。 デプロイ スタックによって管理されるリソースを更新するには、基になるテンプレート ファイルを更新します。
既存のマネージド リソースの更新
Azure 内にデプロイされているリソースを変更するのは一般的なプラクティスです。 新しい機能を組み込んだり、その機能を強化したりするために、リソースのプロパティ値を変更することが必要な場合があります。 現在、コードとしてのインフラストラクチャを使用して Azure 内のリソースを定義している場合は、リソースのプロパティを変更する方法にはなじみがあるでしょう。 デプロイ スタックでも、このプロセスは同じです。 Bicep ファイル内でリソースに変更を加え、スタック上で更新操作を実行します。
最後のモジュールの Bicep ファイルについて考えてみましょう。 このファイルは、App Service プラン、Web アプリ、および Azure SQL サーバーとデータベースを定義しています。 ここでは 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