Azure portal を使用してテンプレートをエクスポートする

Azure Resource Manager テンプレートの作成に役立てるために、既存のリソースからテンプレートをエクスポートできます。 エクスポートされたテンプレートを使用すると、リソースをデプロイする JSON の構文とプロパティを理解できます。 今後のデプロイを自動化するには、まずエクスポートされたテンプレートから始めて、シナリオに合わせて変更します。

Resource Manager では、テンプレートにエクスポートするリソースを 1 つまたは複数選択できます。 テンプレートに必要なリソースにのみ集中することができます。

この記事では、ポータル を使用してテンプレートをエクスポートする方法について説明します。 その他のオプションについては、以下を参照してください。

適切なエクスポート オプションを選択する

テンプレートをエクスポートするには、次の 2 とおりの方法があります。

  • リソース グループまたはリソースからのエクスポート。 このオプションでは、既存のリソースから新しいテンプレートを生成します。 エクスポートされたテンプレートは、リソース グループの現在の状態の "スナップショット" です。 リソース グループ全体、またはそのリソース グループ内の特定のリソースをエクスポートできます。

  • 履歴から保存。 このオプションでは、デプロイに使用されたテンプレートのそのままのコピーを取得します。 デプロイ履歴からデプロイを指定します。

選択したオプションに応じて、エクスポートされたテンプレートの品質は異なります。

リソース グループまたはリソースから 履歴から
テンプレートは自動生成されます。 コードをデプロイする前に、改善する必要がある場合があります。 テンプレートは、テンプレート作成者によって作成されたコピーの正確なコピーです。 変更なしで再デプロイできる状態です。
テンプレートは、リソースの現在の状態のスナップショットです。 デプロイ後に手動で行った変更も含まれます。 テンプレートにはデプロイ時点のリソースの状態のみが表示されます。 デプロイ後に手動で行った変更は含まれません。
リソース グループからエクスポートするリソースを選択できます。 特定のデプロイに関するすべてのリソースが含まれます。 これらのリソースのサブセットを選択したり、別の時点で追加されたリソースを追加したりすることはできません。
テンプレートには、通常はデプロイ中に設定しない一部のプロパティを含め、リソースのすべてのプロパティが含まれています。 テンプレートを再利用する前に、このようなプロパティを削除またはクリーンアップすることをお勧めします。 テンプレートには、デプロイに必要なプロパティのみが含まれています。 テンプレートはよりスパースであり、読みやすくなっています。
テンプレートには、再利用に必要なすべてのパラメーターが含まれていない場合もあります。 ほとんどのプロパティ値は、テンプレートにハードコーディングされています。 他の環境でテンプレートを再デプロイするには、リソースを構成する機能を高めるパラメーターを追加する必要があります。 独自のパラメーターを作成できるように、 [パラメーターを含める] を選択解除できます。 テンプレートには、さまざまな環境での再デプロイが簡単になるパラメーターが含まれています。

次の場合に、リソース グループまたはリソースからテンプレートをエクスポートします。

  • 元のデプロイ後に行われたリソースへの変更をキャプチャする必要がある。
  • エクスポートするリソースを選択したい。
  • テンプレートを使用してリソースを作成していない。

次の場合に、履歴からテンプレートをエクスポートします。

  • 再利用しやすいテンプレートがほしい。
  • 元のデプロイ後に行った変更を含める必要はない。

制限事項

リソースグループまたはリソースからエクスポートする場合、エクスポートされたテンプレートは、リソースの種類ごとに パブリッシュされたスキーマ から生成されます。 場合によっては、スキーマにリソースの種類に対する最新バージョンがないことがあります。 エクスポートしたテンプレートに必要なプロパティが含まれていることを確認してください。 必要に応じて、エクスポートされたテンプレートを編集し、必要な API バージョンを使用します。

テンプレートのエクスポート機能は、Azure Data Factory リソースのエクスポートをサポートしていません。 Data Factory リソースをエクスポートする方法については、「Azure Data Factory のデータ ファクトリをコピーまたは複製する」を参照してください。

クラシック デプロイ モデルを使用して作成されたリソースをエクスポートするには、Resource Manager デプロイ モデルに移行する必要があります。

テンプレートをエクスポートしたとき、リソースの種類がエクスポートされなかったという警告が表示された場合でも、そのリソースのプロパティを検出できます。 リソースのプロパティについては、テンプレート リファレンスを参照してください。 リソースの種類については、Azure REST API も参照できます。

エクスポートされたテンプレートを作成するリソース グループには、200 リソースという制限があります。 200 を超えるリソースを持つリソース グループをエクスポートしようとすると、エラー メッセージ Export template is not supported for resource groups more than 200 resources が表示されます。

リソース グループからテンプレートをエクスポートする

リソース グループから 1 つまたは複数のリソースをエクスポートするには:

  1. エクスポートするリソースを含むリソース グループを選択します。

  2. 該当するチェックボックスを選択して、1 つまたは複数のリソースを選択します。 すべてを選択するには、 [名前] の左側にあるチェックボックスをオンにします。 [テンプレートのエクスポート] メニュー項目を有効にするには、少なくとも 1 つのリソースを設定している必要があります。

    すべてのリソースをエクスポートする

    スクリーンショットでは、ストレージ アカウントのみが選択されています。

  3. [テンプレートのエクスポート] を選択します。

  4. エクスポートされたテンプレートが表示され、ダウンロードおよびデプロイできるようになります。

    テンプレートの表示

    [パラメーターを含める] は、既定で選択されています。 選択すると、テンプレートの生成時にすべてのテンプレート パラメーターが含められます。 独自のパラメーターを作成する場合は、パラメーターを含めないようにこのチェックボックスを切り替えます。

リソースからテンプレートをエクスポートする

1 つのリソースをエクスポートするには:

  1. エクスポートするリソースを含むリソース グループを選択します。

  2. エクスポートするリソースを選択して、リソースを選択します。

  3. そのリソースについて、左側のウィンドウで [テンプレートのエクスポート] を選択します。

    リソースのエクスポート

  4. エクスポートされたテンプレートが表示され、ダウンロードおよびデプロイできるようになります。 このテンプレートには、1 つのリソースのみが含まれています。 [パラメーターを含める] は、既定で選択されています。 選択すると、テンプレートの生成時にすべてのテンプレート パラメーターが含められます。 独自のパラメーターを作成する場合は、パラメーターを含めないようにこのチェックボックスを切り替えます。

デプロイ前にテンプレートをダウンロードする

ポータルには、テンプレートをデプロイする前にダウンロードするオプションがあります。 このオプションは、PowerShell や Azure CLI では使用できません。

  1. デプロイする Azure サービスを選択します。

  2. 新しいサービスの値を入力します。

  3. 検証に合格したら、デプロイを開始する前に、 [Automation のテンプレートをダウンロードする] を選択します。

    テンプレートのダウンロード

  4. テンプレートが表示され、ダウンロードおよびデプロイできるようになります。

デプロイ後にテンプレートをエクスポートする

既存のリソースをデプロイするために使用されたテンプレートをエクスポートできます。 取得するテンプレートは、デプロイに使用されたものとまったく同じです。

  1. エクスポートするリソース グループを選択します。

  2. [デプロイ] の下のリンクを選択します。

    デプロイ履歴の選択

  3. デプロイ履歴からいずれかのデプロイを選択します。

    デプロイの選択

  4. [テンプレート] を選択します。 このデプロイに使用されているテンプレートが表示され、ダウンロードできるようになります。

    テンプレートの選択

次のステップ