次の方法で共有


チュートリアル: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

  1. Azure portal にサインインします。

  2. [リソースの作成] を選択します。

  3. サービスとマーケットプレースの検索用ボックスに「App Service プラン」と入力し、[App Service プラン] を選択します。

  4. [作成] を選択します

  5. [App Service プランの作成] ページで、次の値を入力します。

    • サブスクリプション - ドロップダウン メニューから Azure サブスクリプションを選びます。
    • リソース グループ: [新規作成] を選択し、名前を指定します。 このチュートリアル シリーズで使用しているものとは別のリソース グループ名を指定してください。
    • 名前: App Service プランの名前を入力します。
    • [オペレーティング システム]: [Linux] を選択します。
    • リージョン: 米国中部などのドロップダウン メニューから Azure の場所を選択します。
    • 価格レベル: コストを節約するには、負荷の少ない開発やテストでは、[サイズの変更] を選択して SKU とサイズ最初の Basic (B1) に変更します。

    Azure portal の [App Service プランの作成] ページのスクリーンショット。

  6. [確認と作成] を選択します。

  7. [作成] を選択します リソースが作成されるまでしばらくかかります。

テンプレートをエクスポートする

  1. [リソースに移動] を選択します。

    Azure portal の [リソースに移動] ボタンのスクリーンショット。

  2. 左側のメニューの [オートメーション] で、[テンプレートのエクスポート] を選択します。

    Azure portal での [テンプレートのエクスポート] オプションのスクリーンショット。

    テンプレートのエクスポート機能では、リソースの現在の状態が取得されて、それをデプロイするためのテンプレートが生成されます。 テンプレートのエクスポートは、リソースをデプロイするために必要な JSON をすばやく取得する方法として便利な場合があります。

  3. エクスポートされたテンプレートで Microsoft.Web/serverfarms 定義とパラメーター定義を確認します。 これらのセクションをコピーする必要はありません。 このエクスポートされたテンプレートは、このリソースをテンプレートに追加する方法の例としてのみ使用できます。

    Azure portal でエクスポートされたテンプレート JSON コードのスクリーンショット。

重要

通常、エクスポートされたテンプレートには、テンプレートの作成に必要なものより詳細な情報が含まれます。 たとえば、エクスポートされたテンプレートの 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 からリソース グループを探すことでデプロイを確認できます。

  1. Azure portal にサインインします。
  2. 左側のメニューから [リソース グループ] を選択します。
  3. デプロイ先のリソース グループを選択します。
  4. リソース グループには、ストレージ アカウントと App Service プランが含まれます。

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

次のチュートリアルに移動する場合は、リソース グループを削除する必要はありません。

ここで終了する場合は、リソース グループを削除してかまいません。

  1. Azure portal で、左側のメニューから [リソース グループ] を選択します。
  2. [任意のフィールドのフィルター...] テキスト フィールドにリソース グループ名を入力します。
  3. myResourceGroup の横にあるチェック ボックスをオンにし、[myResourceGroup] またはご自分のリソース グループ名を選びます。
  4. トップ メニューから [リソース グループの削除] を選択します。

次のステップ

Azure portal からテンプレートをエクスポートする方法と、テンプレートの開発にエクスポートしたテンプレートを使用する方法について学習しました。 また、Azure クイックスタート テンプレートを使用して、テンプレートを簡単に開発することもできます。