クイックスタート: Bicep を使用した Azure マネージド アプリケーション定義のデプロイ
このクイックスタートでは、Bicep を使用してサービス カタログから Azure マネージド アプリケーション定義をデプロイする方法について説明します。 サービス カタログ内の定義は、組織のメンバーが使用できます。
サービス カタログからマネージド アプリケーション定義をデプロイするには、次のタスクを行う必要があります。
- Bicep を使用して、マネージド アプリケーション定義をデプロイするテンプレートを作成します。
- デプロイ用のパラメーター ファイルを作成します。
- サービス カタログからマネージド アプリケーション定義をデプロイします。
前提条件
この記事のタスクを完了するには、次のものが必要です。
- 「クイック スタート: Bicep を使用して Azure マネージド アプリケーションの定義を作成および発行する」を使用してデプロイ済みの定義。
- アクティブなサブスクリプションが含まれる Azure アカウント。 アカウントをお持ちでない場合は、開始する前に無料アカウントを作成してください。
- Visual Studio Code と最新の Azure Resource Manager ツール拡張機能。 Bicep ファイルの場合は、Visual Studio Code 用の Bicep 拡張機能をインストールします。
- 最新バージョンの Azure PowerShell または Azure CLI。
マネージド アプリケーション定義を取得する
Azure PowerShell を使用してマネージド アプリケーションの定義を取得するには、次のコマンドを実行します。
Visual Studio Code で、新しい PowerShell ターミナルを開き、Azure サブスクリプションにサインインします。
Connect-AzAccount
コマンドを実行すると、既定のブラウザーが開き、Azure にサインインするよう求められます。 詳細については、「Azure PowerShell を使用してサインインする」を参照してください。
Azure PowerShell から、マネージド アプリケーションの定義を取得します。 この例では、マネージド アプリケーション定義をデプロイしたときに作成されたリソース グループ名 bicepDefinitionGroup を使用します。
Get-AzManagedApplicationDefinition -ResourceGroupName bicepDefinitionGroup
Get-AzManagedApplicationDefinition
は、指定されたリソース グループ内で使用可能なすべての定義 (sampleBicepManagedApplication など) を一覧表示します。
次のコマンドは、出力を解析して定義名とリソース グループ名のみを表示します。 これらの名前は、マネージド アプリケーションをデプロイするときに使用します。
Get-AzManagedApplicationDefinition -ResourceGroupName bicepDefinitionGroup | Select-Object -Property Name, ResourceGroupName
Bicep ファイルを作成する
Visual Studio Code を開き、deployServiceCatalog.bicep という名前のファイルを作成します。 次のコードをコピーし、ファイルに貼り付けて保存します。
@description('Region where the resources are deployed.')
param location string = resourceGroup().location
@description('Resource group name where the definition is stored.')
param definitionRG string
@description('Name of the service catalog definition.')
param definitionName string
// Parameters for the managed application's resource deployment
@description('Name of the managed application.')
param managedAppName string
@description('Name for the managed resource group.')
param mrgName string
@maxLength(40)
@description('Service plan name with maximum 40 alphanumeric characters and hyphens. Must be unique within a resource group in your subscription.')
param appServicePlanName string
@maxLength(47)
@description('Globally unique across Azure. Maximum of 47 alphanumeric characters or hyphens.')
param appServiceNamePrefix string
@description('Resource ID for the managed application definition.')
var appResourceId = resourceId('${definitionRG}', 'Microsoft.Solutions/applicationdefinitions', '${definitionName}')
@description('Creates the path for the managed resource group. The resource group is created during deployment.')
var mrgId = '${subscription().id}/resourceGroups/${mrgName}'
resource bicepServiceCatalogApp 'Microsoft.Solutions/applications@2021-07-01' = {
name: managedAppName
kind: 'ServiceCatalog'
location: location
properties: {
applicationDefinitionId: appResourceId
managedResourceGroupId: mrgId
parameters: {
appServicePlanName: {
value: appServicePlanName
}
appServiceNamePrefix: {
value: appServiceNamePrefix
}
}
}
}
リソースの種類の詳細については、「Microsoft.Solutions/applications」を参照してください。
パラメーター ファイルを作成する
Visual Studio Code を開き、deployServiceCatalog.parameters.bicepparam という名前のパラメーター ファイルを作成します。 次のコードをコピーし、ファイルに貼り付けて保存します。
using './deployServiceCatalog.bicep'
param definitionName = 'sampleBicepManagedApplication'
param definitionRG = 'bicepDefinitionGroup'
param managedAppName = 'sampleBicepManagedApp'
param mrgName = 'placeholder for managed resource group name'
param appServicePlanName = 'demoAppServicePlan'
param appServiceNamePrefix = 'demoApp'
マネージド アプリケーションをデプロイするには、いくつかのパラメーターを指定する必要があります。
パラメーター | 値 |
---|---|
definitionName |
サービス カタログ定義の名前。 この例では、sampleBicepManagedApplication を使用します。 |
definitionRG |
定義が格納されているリソース グループ名。 この例では、bicepDefinitionGroup を使用します。 |
managedAppName |
デプロイされたマネージド アプリケーションの名前。 この例では、sampleBicepManagedApp を使用します。 |
mrgName |
アプリケーションのデプロイされたリソースを含むマネージド リソース グループの一意の名前。 リソース グループは、マネージド アプリケーションをデプロイするときに作成されます。 マネージド リソース グループ名を作成するには、このパラメーター リストに従い、$mrgname 値を使用してパラメーター ファイル内のプレースホルダーを置き換えるコマンドを実行します。 |
appServicePlanName |
プラン名を作成します。 最大 40 文字の英数字とハイフンです。 たとえば、demoAppServicePlan です。 App Service プラン名は、サブスクリプション内のリソース グループ内で一意である必要があります。 |
appServiceNamePrefix |
プラン名のプレフィックスを作成します。 最大 47 文字の英数字またはハイフンです。 たとえば、 demoApp です。 デプロイ時に、プレフィックスが一意の文字列と連結され、Azure 全体でグローバルに一意の名前が作成されます。 |
次のコマンドを実行して、マネージド リソース グループの名前を作成できます。
$mrgprefix = 'mrg-sampleBicepManagedApplication-'
$mrgtimestamp = Get-Date -UFormat "%Y%m%d%H%M%S"
$mrgname = $mrgprefix + $mrgtimestamp
$mrgname
$mrgprefix
変数と $mrgtimestamp
変数は連結され、$mrgname
変数に格納されます。 変数の値は mrg-sampleBicepManagedApplication-20230512103059 の形式です。 $mrgname
変数の値は、マネージド アプリケーションをデプロイするときに使用します。
マネージド アプリケーションのデプロイ
Azure PowerShell または Azure CLI を使用して、リソース グループの作成とマネージド アプリケーションのデプロイを行います。
New-AzResourceGroup -Name bicepApplicationGroup -Location westus
$deployparms = @{
ResourceGroupName = "bicepApplicationGroup"
TemplateFile = "deployServiceCatalog.bicep"
TemplateParameterFile = "deployServiceCatalog-parameters.bicepparam"
Name = "deployServiceCatalogApp"
}
New-AzResourceGroupDeployment @deployparms
$deployparms
変数は PowerShell のスプラッティングを使用してパラメータ値の読みやすさを向上させます。
デプロイ時に、managedResourceGroupId
プロパティにリソース ID が必要であることを示す Bicep リンター警告が表示される場合があります。 マネージド リソース グループはデプロイ中に作成されるため、このプロパティに使用できるリソース ID はありません。
結果の表示
サービス カタログ マネージド アプリケーションをデプロイした後には、2 つの新しいリソース グループが作成されています。 1 つのリソース グループには、マネージド アプリケーションが含まれます。 もう 1 つのリソース グループには、デプロイされたマネージド リソースが含まれます。 この例では、App Service、App Service プラン、およびストレージ アカウントです。
マネージド アプリケーション
デプロイが完了したら、マネージド アプリケーションの状態を確認できます。
次のコマンドを実行して、マネージド アプリケーションの状態を確認します。
Get-AzManagedApplication -Name sampleBicepManagedApp -ResourceGroupName bicepApplicationGroup
Properties
情報を読みやすくするために、プロパティを展開します。
Get-AzManagedApplication -Name sampleBicepManagedApp -ResourceGroupName bicepApplicationGroup | Select-Object -ExpandProperty Properties
マネージド リソース
管理対象リソース グループにデプロイされたリソースを表示できます。
管理対象リソース グループのリソースを表示するには、次のコマンドを実行します。 $mrgname
変数は、パラメーターの作成時に作成しました。
Get-AzResource -ResourceGroupName $mrgname
管理対象リソース グループのすべてのロールの割り当てを表示には、以下を実行します。
Get-AzRoleAssignment -ResourceGroupName $mrgname
クイックスタート記事で作成したマネージド アプリケーション定義では、所有者ロールの割り当てを持つグループを使用しました。 次のコマンドを使用して、グループを表示できます。
Get-AzRoleAssignment -ResourceGroupName $mrgname -RoleDefinitionName Owner
管理対象リソース グループの拒否の割り当てを一覧表示することもできます。
Get-AzDenyAssignment -ResourceGroupName $mrgname
リソースをクリーンアップする
マネージド アプリケーションを終了したら、リソース グループを削除でき、これにより作成したすべてのリソースが削除されます。 たとえば、リソース グループ bicepApplicationGroup と、プレフィックス mrg-bicepManagedApplication を持つマネージド リソース グループを作成したとします。
bicepApplicationGroup リソース グループを削除すると、マネージド アプリケーション、マネージド リソース グループ、およびすべての Azure リソースが削除されます。
コマンドを実行すると、リソース グループを削除することを確認するメッセージが表示されます。
Remove-AzResourceGroup -Name bicepApplicationGroup
マネージド アプリケーション定義を削除する場合は、作成した packageStorageGroup と bicepDefinitionGroup という名前のリソース グループを削除します。
次のステップ
- Azure PowerShell、Azure CLI、またはポータルを使用してマネージド アプリケーションの定義ファイルを作成および発行する方法を学習するには、「クイック スタート: Azure Managed Applications の定義を作成して発行する」を参照してください。
- 独自のストレージを使って、マネージド アプリケーションの定義ファイルを作成して発行するには、「クイック スタート: 独自のストレージを使用して Azure Managed Applications の定義を作成および発行する」を参照してください。