クイックスタート: サービス カタログ マネージド アプリケーションのデプロイ
[アーティクル] 05/12/2023
5 人の共同作成者
フィードバック
この記事の内容
このクイックスタートでは、クイックスタート記事のいずれかを使用して作成したマネージド アプリケーション定義を使用します。 このデプロイでは、2 つのリソース グループが作成されます。 1 つのリソース グループにはマネージド アプリケーションが含まれており、もう 1 つはデプロイされたリソースの管理対象リソース グループです。 マネージド アプリケーション定義は、App Service プラン、App Service、ストレージ アカウントをデプロイします。
前提条件
サービス カタログ マネージド アプリケーションを作成する
例では、"アプリケーション定義を発行するためのクイックスタート" で作成したリソース グループ名を使用します。 "ストレージ持ち込みで定義を発行" するクイックスタートを使用した場合は、それらのリソース グループ名を使用してください。
アプリケーション定義の発行 : packageStorageGroup と appDefinitionGroup 。
Bring Your Own Storage で定義を発行する : packageStorageGroup 、byosDefinitionStorageGroup 、byosAppDefinitionGroup 。
マネージド アプリケーション定義を取得する
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
変数の値は、マネージド アプリケーションをデプロイするときに使用します。
Azure CLI を使用してマネージド アプリケーションの定義を取得するには、次のコマンドを実行します。
Visual Studio Code で、新しい Bash ターミナル セッションを開き、Azure サブスクリプションにサインインします。 Git をインストールしている場合は、Git Bash を選択します。
az login
コマンドを実行すると、既定のブラウザーが開き、Azure にサインインするよう求められます。 詳細については、「Azure CLI を使用してサインインする 」を参照してください。
Azure CLI から、マネージド アプリケーションの定義を取得します。 この例では、マネージド アプリケーション定義をデプロイしたときに作成されたリソース グループ名 appDefinitionGroup を使用します。
az managedapp definition list --resource-group appDefinitionGroup
このコマンドは、指定されたリソース グループ内で使用可能なすべての定義 (sampleManagedApplication など) を一覧表示します。
マネージド アプリケーション定義のリソース ID 用の変数を作成します。
definitionid=$(az managedapp definition show --resource-group appDefinitionGroup --name sampleManagedApplication --query id --output tsv)
$definitionid
変数の値は、マネージド アプリケーションをデプロイするときに使用します。
Azure portal からマネージド アプリケーションの定義を取得するには、次の手順を使用します。
Azure portal にサインインします。
[リソースの作成] を選択します。
「Service Catalog Managed Application 」を検索し、使用可能なオプションからそれを選択します。
サービス カタログ マネージド アプリケーション が表示されます。 [作成] を選択します
[サンプル マネージド アプリケーション] を選択し、[作成] を選択します。
クイックスタートの記事で公開したマネージド アプリケーション定義がポータルに表示されます。
リソース グループとパラメーターを作成する
デプロイ中に使用されるマネージド アプリケーションのリソース グループを作成します。
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 です。
デプロイ中に使用されるマネージド アプリケーションのリソース グループを作成します。
az group create --name applicationGroup --location westus3
また、マネージド アプリケーション リソース グループの名前とパスを作成する必要もあります。 リソース グループは、マネージド アプリケーションをデプロイするときに作成されます。
次のコマンドを実行して、管理対象リソース グループのパスを作成します。
mrgprefix='mrg-sampleManagedApplication-'
mrgtimestamp=$(date +%Y%m%d%H%M%S)
mrgname="${mrgprefix}${mrgtimestamp}"
subid=$(az account list --query [].id --output tsv)
mrgpath="/subscriptions/$subid/resourceGroups/$mrgname"
$mrgprefix
変数と $mrgtimestamp
変数は連結され、$mrgname
変数に格納されます。 変数の値は mrg-sampleManagedApplication-20230512103059 の形式です。 mrgname
と subid
の変数が連結されて、デプロイ中に管理対象リソース グループを作成する mrgpath
変数値が作成されます。
マネージド アプリケーションのデプロイ コマンドにいくつかのパラメーターを指定する必要があります。 JSON 形式の文字列を使用することも、JSON ファイルを作成することもできます。 この例では、JSON 形式の文字列を使用します。 Bash では、引用符のエスケープ文字は、円記号 (\
) 文字です。 円記号は、コマンドで複数の行を使用できるように、行の連結にも使用されます。
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 です。
[基本] タブの値を指定し、[次へ: Web アプリ設定] を選択します。
サブスクリプション : マネージド アプリケーションをデプロイするサブスクリプションを選択します。
リソース グループ : リソース グループを選択します。 この例では、applicationGroup という名前のリソース グループを作成します。
リージョン : リソースをデプロイする場所を選択します。
アプリケーション名 : マネージド アプリケーションの名前を入力します。 この例では、demoManagedApplication を使用します。
管理対象リソース グループ : マネージド アプリケーション用にデプロイされたリソースを含む管理対象リソース グループの名前。 既定の名前は mrg-{definitionName}-{dateTime}
の形式ですが、名前は変更できます。
[Web アプリ設定] タブの値を指定し、[次へ: ストレージ設定] を選択します。
App Service プラン名 : プラン名を作成します。 最大 40 文字の英数字とハイフンです。 たとえば、demoAppServicePlan です。 App Service プラン名は、サブスクリプション内のリソース グループ内で一意である必要があります。
App Service 名のプレフィックス : プラン名のプレフィックスを作成します。 最大 47 文字の英数字またはハイフンです。 たとえば、 demoApp です。 デプロイ時に、プレフィックスが一意の文字列と連結され、Azure 全体でグローバルに一意の名前が作成されます。
ストレージ アカウント名のプレフィックスを入力し、ストレージ アカウントの種類を選択します。 確認と作成 をクリックします。
ストレージ アカウント名プレフィックス : 小文字と数字のみを使用し、最大 11 文字を使用します。 たとえば、demostg1234 です。 デプロイ時に、プレフィックスが一意の文字列と連結され、Azure 全体でグローバルに一意の名前が作成されます。 プレフィックスを作成していますが、コントロールにより Azure 内の既存の名前がチェックされ、名前が既に存在することを示す検証メッセージが投稿される場合があります。 その場合は、別のプレフィックスを選択します。
ストレージ アカウントの種類 : [変更の種類] を選択し、ストレージ アカウントの種類を選択します。 既定値は Standard LRS です。 その他のオプションは、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
変数の値を使用します。
次のコマンドを実行して、マネージド アプリケーションをデプロイします。
az managedapp create \
--name demoManagedApplication \
--resource-group applicationGroup \
--location westus3 \
--managed-rg-id $mrgpath \
--managedapp-definition-id $definitionid \
--kind ServiceCatalog \
--parameters "$params"
デプロイ コマンドで使用されるパラメーター:
name
: マネージド アプリケーションの名前を指定します。 この例では、demoManagedApplication を使用します。
resource-group
: マネージド アプリケーション用に作成したリソース グループの名前。
location
: リソースをデプロイするリージョンを指定します。 この例では、westus3 を使用します。
managed-rg-id
: $mrgpath
変数の値を使用します。 管理対象リソース グループは、マネージド アプリケーションのデプロイ時に作成されます。
managedapp-definition-id
: マネージド アプリケーション定義のリソース ID に $definitionid
変数の値を使用します。
kind
: マネージド アプリケーションの種類を指定します。 この例では、ServiceCatalog を使用します。
parameters
: 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
次のコマンドを実行して、マネージド アプリケーションの状態を確認します。
az managedapp list --resource-group applicationGroup
次のコマンドは、マネージド アプリケーションに関するデータを解析して、アプリケーションの名前とプロビジョニング状態のみを表示します。
az managedapp list --resource-group applicationGroup --query "[].{Name:name, provisioningState:provisioningState}"
applicationGroup という名前のリソース グループに移動し、[概要] を選択します。 リソース グループには、demoManagedApplication という名前のマネージド アプリケーションが含まれます。
マネージド アプリケーションの名前を選択して、管理対象リソース グループへのリンクなどの詳細情報を取得します。
マネージド リソース
管理対象リソース グループにデプロイされたリソースを表示できます。
管理対象リソース グループのリソースを表示するには、次のコマンドを実行します。 $mrgname
変数は、パラメーターの作成時に作成しました。
Get-AzResource -ResourceGroupName $mrgname
管理対象リソース グループのすべてのロールの割り当てを表示には、以下を実行します。
Get-AzRoleAssignment -ResourceGroupName $mrgname
クイックスタート記事で作成したマネージド アプリケーション定義では、所有者ロールの割り当てを持つグループを使用しました。 次のコマンドを使用して、グループを表示できます。
Get-AzRoleAssignment -ResourceGroupName $mrgname -RoleDefinitionName Owner
管理対象リソース グループの拒否の割り当てを一覧表示することもできます。
Get-AzDenyAssignment -ResourceGroupName $mrgname
管理対象リソース グループのリソースを表示するには、次のコマンドを実行します。 $mrgname
変数は、パラメーターの作成時に作成しました。
az resource list --resource-group $mrgname
次のコマンドを実行して、管理対象リソースの名前、種類、プロビジョニングの状態のみを一覧表示します。
az resource list --resource-group $mrgname --query "[].{Name:name, Type:type, provisioningState:provisioningState}"
次のコマンドを実行して、マネージド アプリケーションの定義で使用されたグループのロールの割り当てを一覧表示します。
az role assignment list --resource-group $mrgname
次のコマンドは、グループのロール割り当てのデータを解析します。
az role assignment list --resource-group $mrgname --role Owner --query "[].{ResourceGroup:resourceGroup, GroupName:principalName, RoleDefinition:roleDefinitionId, Role:roleDefinitionName}"
管理対象リソース グループの拒否割り当てを確認するには、Azure portal または Azure PowerShell コマンドを使用します。
名前のプレフィックスが mrg-sampleManagedApplication の管理対象リソース グループに移動し、[概要] を選択して、デプロイされたリソースを表示します。 リソース グループには、App Service、App Service プラン、ストレージ アカウントが含まれます。
管理対象リソース グループと、マネージド アプリケーションによって作成された各リソースには、ロールの割り当てがあります。 クイック スタート記事を使用して定義を作成したときは、Microsoft Entra グループを作成しました。 そのグループは、マネージド アプリケーション定義で使用されました。 マネージド アプリケーションをデプロイしたときに、そのグループのロールの割り当てが管理対象リソースに追加されました。
Azure portal からロールの割り当てを確認するには、次の手順を実行します。
mrg-sampleManagedApplication リソース グループに移動します。
[アクセス制御 (IAM)] >[ロールの割り当て] の順に選択します。
リソースの拒否割り当て を表示することもできます。
ロールの割り当てによって、アプリケーションの発行元に、ストレージ アカウントを管理するためのアクセス権が付与されます。 この例では、発行元が IT 部門である可能性があります。 拒否割り当て により、お客様は管理対象リソースの構成を変更できなくなります。 マネージド アプリは、お客様がリソースを保持する必要がないように設計されています。 拒否の割り当て により、ロールの割り当て で割り当てられた Microsoft Entra グループは除外されます。
リソースをクリーンアップする
マネージド アプリケーションを終了したら、リソース グループを削除でき、これにより作成したすべてのリソースが削除されます。 たとえば、このクイックスタートでは、リソース グループ applicationGroup と、プレフィックス mrg-sampleManagedApplication を持つ管理対象リソース グループを作成しました。
コマンドを実行すると、リソース グループを削除することを確認するメッセージが表示されます。
Remove-AzResourceGroup -Name applicationGroup
このコマンドは確認を求めてから、リソースの削除中にコマンド プロンプトに戻ります。
az group delete --resource-group applicationGroup --no-wait
Azure portal のホーム から、検索フィールドにリソース グループ を入力します。
[リソース グループ] を選択します。
[applicationGroup] と [リソース グループの削除] を選択します。
削除を確認するには、リソース グループ名を入力して [削除] を選択します。
マネージド アプリケーション定義を削除したい場合は、クイック スタートの記事で作成したリソース グループを削除します。
アプリケーション定義の発行 : packageStorageGroup と appDefinitionGroup 。
Bring Your Own Storage で定義を発行する : packageStorageGroup 、byosDefinitionStorageGroup 、byosAppDefinitionGroup 。
次のステップ