Share via


クイックスタート: サービス カタログ マネージド アプリケーションのデプロイ

このクイックスタートでは、クイックスタート記事のいずれかを使用して作成したマネージド アプリケーション定義を使用します。 このデプロイでは、2 つのリソース グループが作成されます。 1 つのリソース グループにはマネージド アプリケーションが含まれており、もう 1 つはデプロイされたリソースの管理対象リソース グループです。 マネージド アプリケーション定義は、App Service プラン、App Service、ストレージ アカウントをデプロイします。

前提条件

サービス カタログ マネージド アプリケーションを作成する

例では、"アプリケーション定義を発行するためのクイックスタート" で作成したリソース グループ名を使用します。 "ストレージ持ち込みで定義を発行" するクイックスタートを使用した場合は、それらのリソース グループ名を使用してください。

  • アプリケーション定義の発行: packageStorageGroupappDefinitionGroup
  • Bring Your Own Storage で定義を発行する: packageStorageGroupbyosDefinitionStorageGroupbyosAppDefinitionGroup

マネージド アプリケーション定義を取得する

Azure PowerShell を使用してマネージド アプリケーションの定義を取得するには、次のコマンドを実行します。

Visual Studio Code で、新しい PowerShell ターミナルを開き、Azure サブスクリプションにサインインします。

Connect-AzAccount

コマンドを実行すると、既定のブラウザーが開き、Azure にサインインするよう求められます。 詳細については、「Azure PowerShell を使用してサインインする」を参照してください。

Azure PowerShell から、マネージド アプリケーションの定義を取得します。 この例では、マネージド アプリケーション定義をデプロイしたときに作成されたリソース グループ名 appDefinitionGroup を使用します。

Get-AzManagedApplicationDefinition -ResourceGroupName appDefinitionGroup

Get-AzManagedApplicationDefinition は、指定されたリソース グループ内で使用可能なすべての定義 (sampleManagedApplication など) を一覧表示します。

マネージド アプリケーション定義のリソース ID 用の変数を作成します。

$definitionid = (Get-AzManagedApplicationDefinition -ResourceGroupName appDefinitionGroup -Name sampleManagedApplication).ManagedApplicationDefinitionId

$definitionid 変数の値は、マネージド アプリケーションをデプロイするときに使用します。

リソース グループとパラメーターを作成する

デプロイ中に使用されるマネージド アプリケーションのリソース グループを作成します。

New-AzResourceGroup -Name applicationGroup -Location westus3

また、マネージド アプリケーション リソース グループの名前を作成する必要もあります。 リソース グループは、マネージド アプリケーションをデプロイするときに作成されます。

次のコマンドを実行して、管理対象リソース グループの名前を作成します。

$mrgprefix = 'mrg-sampleManagedApplication-'
$mrgtimestamp = Get-Date -UFormat "%Y%m%d%H%M%S"
$mrgname = $mrgprefix + $mrgtimestamp
$mrgname

$mrgprefix 変数と $mrgtimestamp 変数は連結され、$mrgname 変数に格納されます。 変数の値は mrg-sampleManagedApplication-20230512103059 の形式です。 $mrgname 変数の値は、マネージド アプリケーションをデプロイするときに使用します。

マネージド アプリケーションのデプロイ コマンドにいくつかのパラメーターを指定する必要があります。 JSON 形式の文字列を使用することも、JSON ファイルを作成することもできます。 この例では、JSON 形式の文字列を使用します。 引用符の PowerShell エスケープ文字は、バックティック (`) 文字です。 バックティックは、コマンドで複数の行を使用できるように、行の連結にも使用されます。

JSON 形式の文字列の構文は次のとおりです。

"{ `"parameterName`": {`"value`":`"parameterValue`"}, `"parameterName`": {`"value`":`"parameterValue`"} }"

読みやすくするために、完全な JSON 文字列では、行の連結にバックティックが使用されます。 値は、デプロイ コマンドで使用される $params 変数に格納されます。 JSON 文字列内のパラメーターは、管理対象リソースをデプロイするために必要です。

$params="{ `"appServicePlanName`": {`"value`":`"demoAppServicePlan`"}, `
`"appServiceNamePrefix`": {`"value`":`"demoApp`"}, `
`"storageAccountNamePrefix`": {`"value`":`"demostg1234`"}, `
`"storageAccountType`": {`"value`":`"Standard_LRS`"} }"

管理対象リソースを作成するためのパラメーター:

  • appServicePlanName: プラン名を作成します。 最大 40 文字の英数字とハイフンです。 たとえば、demoAppServicePlan です。 App Service プラン名は、サブスクリプション内のリソース グループ内で一意である必要があります。
  • appServiceNamePrefix: プラン名のプレフィックスを作成します。 最大 47 文字の英数字またはハイフンです。 たとえば、 demoApp です。 デプロイ時に、プレフィックスが一意の文字列と連結され、Azure 全体でグローバルに一意の名前が作成されます。
  • storageAccountNamePrefix: 小文字と数字のみを使用し、最大 11 文字を使用します。 たとえば、demostg1234 です。 デプロイ時に、プレフィックスが一意の文字列と連結され、Azure 全体でグローバルに一意の名前が作成されます。 プレフィックスを作成していますが、コントロールにより Azure 内の既存の名前がチェックされ、名前が既に存在することを示す検証メッセージが投稿される場合があります。 その場合は、別のプレフィックスを選択します。
  • storageAccountType: オプションは Premium_LRS、Standard_LRS、Standard_GRS です。

マネージド アプリケーションのデプロイ

次のコマンドを実行して、マネージド アプリケーションをデプロイします。

New-AzManagedApplication `
  -Name "demoManagedApplication" `
  -ResourceGroupName applicationGroup `
  -Location westus3 `
  -ManagedResourceGroupName $mrgname `
  -ManagedApplicationDefinitionId $definitionid `
  -Kind ServiceCatalog `
  -Parameter $params

デプロイ コマンドで使用されるパラメーター:

  • Name: マネージド アプリケーションの名前を指定します。 この例では、demoManagedApplication を使用します。
  • ResourceGroupName: マネージド アプリケーション用に作成したリソース グループの名前。
  • Location: リソースをデプロイするリージョンを指定します。 この例では、westus3 を使用します。
  • ManagedResourceGroupName: $mrgname 変数の値を使用します。 管理対象リソース グループは、マネージド アプリケーションのデプロイ時に作成されます。
  • ManagedApplicationDefinitionId: マネージド アプリケーション定義のリソース ID に $definitionid 変数の値を使用します。
  • Kind: マネージド アプリケーションの種類を指定します。 この例では、ServiceCatalog を使用します。
  • Parameter: JSON 形式の文字列の $params 変数の値を使用します。

結果の表示

サービス カタログ マネージド アプリケーションをデプロイした後には、2 つの新しいリソース グループが作成されています。 1 つのリソース グループには、マネージド アプリケーションが含まれます。 もう 1 つのリソース グループには、デプロイされたマネージド リソースが含まれます。 この例では、App Service、App Service プラン、およびストレージ アカウントです。

マネージド アプリケーション

デプロイが完了したら、マネージド アプリケーションの状態を確認できます。

次のコマンドを実行して、マネージド アプリケーションの状態を確認します。

Get-AzManagedApplication -Name demoManagedApplication -ResourceGroupName applicationGroup

Properties 情報を読みやすくするために、プロパティを展開します。

Get-AzManagedApplication -Name demoManagedApplication -ResourceGroupName applicationGroup | Select-Object -ExpandProperty Properties

マネージド リソース

管理対象リソース グループにデプロイされたリソースを表示できます。

管理対象リソース グループのリソースを表示するには、次のコマンドを実行します。 $mrgname 変数は、パラメーターの作成時に作成しました。

Get-AzResource -ResourceGroupName $mrgname

管理対象リソース グループのすべてのロールの割り当てを表示には、以下を実行します。

Get-AzRoleAssignment -ResourceGroupName $mrgname

クイックスタート記事で作成したマネージド アプリケーション定義では、所有者ロールの割り当てを持つグループを使用しました。 次のコマンドを使用して、グループを表示できます。

Get-AzRoleAssignment -ResourceGroupName $mrgname -RoleDefinitionName Owner

管理対象リソース グループの拒否の割り当てを一覧表示することもできます。

Get-AzDenyAssignment -ResourceGroupName $mrgname

リソースをクリーンアップする

マネージド アプリケーションを終了したら、リソース グループを削除でき、これにより作成したすべてのリソースが削除されます。 たとえば、このクイックスタートでは、リソース グループ applicationGroup と、プレフィックス mrg-sampleManagedApplication を持つ管理対象リソース グループを作成しました。

コマンドを実行すると、リソース グループを削除することを確認するメッセージが表示されます。

Remove-AzResourceGroup -Name applicationGroup

マネージド アプリケーション定義を削除したい場合は、クイック スタートの記事で作成したリソース グループを削除します。

  • アプリケーション定義の発行: packageStorageGroupappDefinitionGroup
  • Bring Your Own Storage で定義を発行する: packageStorageGroupbyosDefinitionStorageGroupbyosAppDefinitionGroup

次のステップ