チュートリアル:Azure portal からエクスポートしたテンプレートを使用する
このチュートリアル シリーズでは、Azure ストレージ アカウントをデプロイするためのテンプレートを作成します。 次の 2 つのチュートリアルでは、"App Service プラン" と "Web サイト" を追加します。 テンプレートを最初から作成する代わりに、Azure portal からテンプレートをエクスポートする方法と、「Azure クイック スタート テンプレート」からサンプル テンプレートを使用する方法について説明します。 それらのテンプレートを自分用にカスタマイズします。 このチュートリアルでは、テンプレートのエクスポートと、テンプレートの結果のカスタマイズに焦点を当てます。 このチュートリアルを完了するには 14 分かかります。
前提条件
必須ではありませんが、出力に関するチュートリアルを済ませておくことをお勧めします。
Visual Studio Code と Resource Manager ツールの拡張機能、そして Azure PowerShell または Azure コマンド ライン インターフェイス (CLI) のいずれかを使用する必要があります。 詳細については、テンプレートのツールに関する記事を参照してください。
テンプレートを確認する
前のチュートリアルで完成したテンプレートには、次の JSON ファイルが含まれていました。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"type": "string",
"minLength": 3,
"maxLength": 11
},
"storageSKU": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_RAGRS",
"Standard_ZRS",
"Premium_LRS",
"Premium_ZRS",
"Standard_GZRS",
"Standard_RAGZRS"
]
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"variables": {
"uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-09-01",
"name": "[variables('uniqueStorageName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageSKU')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
}
],
"outputs": {
"storageEndpoint": {
"type": "object",
"value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
}
}
}
このテンプレートを使用すればストレージ アカウントをデプロイできますが、それにさらにリソースを追加したい場合があります。 既存のリソースからテンプレートをエクスポートして、そのリソースの JSON をすばやく取得できます。
Create App Service plan
Azure portal にサインインします。
[リソースの作成] を選択します。
サービスとマーケットプレースの検索用ボックスに「App Service プラン」と入力し、[App Service プラン] を選択します。
[作成] を選択します
[App Service プランの作成] ページで、次の値を入力します。
- サブスクリプション - ドロップダウン メニューから Azure サブスクリプションを選びます。
- リソース グループ: [新規作成] を選択し、名前を指定します。 このチュートリアル シリーズで使用しているものとは別のリソース グループ名を指定してください。
- 名前: App Service プランの名前を入力します。
- [オペレーティング システム]: [Linux] を選択します。
- リージョン: 米国中部などのドロップダウン メニューから Azure の場所を選択します。
- 価格レベル: コストを節約するには、負荷の少ない開発やテストでは、[サイズの変更] を選択して SKU とサイズを最初の Basic (B1) に変更します。
[確認と作成] を選択します。
[作成] を選択します リソースが作成されるまでしばらくかかります。
テンプレートをエクスポートする
[リソースに移動] を選択します。
左側のメニューの [オートメーション] で、[テンプレートのエクスポート] を選択します。
テンプレートのエクスポート機能では、リソースの現在の状態が取得されて、それをデプロイするためのテンプレートが生成されます。 テンプレートのエクスポートは、リソースをデプロイするために必要な JSON をすばやく取得する方法として便利な場合があります。
エクスポートされたテンプレートで
Microsoft.Web/serverfarms
定義とパラメーター定義を確認します。 これらのセクションをコピーする必要はありません。 このエクスポートされたテンプレートは、このリソースをテンプレートに追加する方法の例としてのみ使用できます。
重要
通常、エクスポートされたテンプレートには、テンプレートの作成に必要なものより詳細な情報が含まれます。 たとえば、エクスポートされたテンプレートの SKU オブジェクトには、5 つのプロパティがあります。 このテンプレートでも機能しますが、name
プロパティだけを使用することもできます。 エクスポートしたテンプレートから始めて、必要に応じて変更できます。
既存のテンプレートを修正する
エクスポートされたテンプレートでは、必要な JSON の大部分が提供されますが、カスタマイズして自分用のテンプレートにする必要があります。 独自のテンプレートとエクスポートされたテンプレートでの、パラメーターと変数の違いに特に注意してください。 もちろん、エクスポート プロセスでは、独自のテンプレートで既に定義したパラメーターと変数は認識されません。
次の例では、独自のテンプレートに対する追加部分が強調して示されています。 それには、エクスポートされたコードに加えていくつかの変更が含まれます。 最初に、独自の名前付け規則に合わせてパラメーターの名前が変更されています。 次に、App Service プランの場所に対する location パラメーターが使用されています。 3 つ目として、既定値で問題がないプロパティがいくつか削除されています。
ファイル全体をコピーして、既存のテンプレートの内容を置き換えてください。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"type": "string",
"minLength": 3,
"maxLength": 11
},
"storageSKU": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_RAGRS",
"Standard_ZRS",
"Premium_LRS",
"Premium_ZRS",
"Standard_GZRS",
"Standard_RAGZRS"
]
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
},
"appServicePlanName": {
"type": "string",
"defaultValue": "exampleplan"
}
},
"variables": {
"uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-09-01",
"name": "[variables('uniqueStorageName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageSKU')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
},
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2021-03-01",
"name": "[parameters('appServicePlanName')]",
"location": "[parameters('location')]",
"sku": {
"name": "B1",
"tier": "Basic",
"size": "B1",
"family": "B",
"capacity": 1
},
"kind": "linux",
"properties": {
"perSiteScaling": false,
"reserved": true,
"targetWorkerCount": 0,
"targetWorkerSizeId": 0
}
}
],
"outputs": {
"storageEndpoint": {
"type": "object",
"value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
}
}
}
テンプレートのデプロイ
テンプレートをデプロイするには、Azure CLI または Azure PowerShell を使用します。
まだリソース グループを作成していない場合は、「リソース グループの作成」を参照してください。 この例では、templateFile
変数にテンプレート ファイルのパスが設定済みであることを想定しています (1 つ目のチュートリアルを参照)。
New-AzResourceGroupDeployment `
-Name addappserviceplan `
-ResourceGroupName myResourceGroup `
-TemplateFile $templateFile `
-storagePrefix "store" `
-storageSKU Standard_LRS
Note
デプロイに失敗した場合は、verbose
スイッチを使用して、作成しているリソースに関する情報を取得します。 デバッグの詳細については、debug
スイッチを使用してください。
デプロイの確認
Azure portal からリソース グループを探すことでデプロイを確認できます。
- Azure portal にサインインします。
- 左側のメニューから [リソース グループ] を選択します。
- デプロイ先のリソース グループを選択します。
- リソース グループには、ストレージ アカウントと App Service プランが含まれます。
リソースをクリーンアップする
次のチュートリアルに移動する場合は、リソース グループを削除する必要はありません。
ここで終了する場合は、リソース グループを削除してかまいません。
- Azure portal で、左側のメニューから [リソース グループ] を選択します。
- [任意のフィールドのフィルター...] テキスト フィールドにリソース グループ名を入力します。
- myResourceGroup の横にあるチェック ボックスをオンにし、[myResourceGroup] またはご自分のリソース グループ名を選びます。
- トップ メニューから [リソース グループの削除] を選択します。
次のステップ
Azure portal からテンプレートをエクスポートする方法と、テンプレートの開発にエクスポートしたテンプレートを使用する方法について学習しました。 また、Azure クイックスタート テンプレートを使用して、テンプレートを簡単に開発することもできます。