Azure portal を使用してテンプレートをエクスポートする
Azure Resource Manager テンプレートの作成に役立てるために、既存のリソースからテンプレートをエクスポートできます。 エクスポートされたテンプレートを使用すると、リソースをデプロイする JSON の構文とプロパティを理解できます。 今後のデプロイを自動化するには、まずエクスポートされたテンプレートから始めて、シナリオに合わせて変更します。 テンプレートのエクスポート プロセスは、使用可能なテンプレートを作成しようとします。 ただし、エクスポートされたほとんどのテンプレートは、Azure リソースのデプロイに使用する前に、いくつかの変更が必要です。
Resource Manager では、テンプレートにエクスポートするリソースを 1 つまたは複数選択できます。 テンプレートに必要なリソースにのみ集中することができます。
この記事では、ポータルを使用してテンプレートをエクスポートする方法について説明します。 その他のオプションについては、以下を参照してください。
- Azure CLI でテンプレートをエクスポートする
- Azure PowerShell でテンプレートをエクスポートする
- リソース グループからの REST API エクスポートおよびデプロイ履歴からの REST API エクスポート
適切なエクスポート オプションを選択する
テンプレートをエクスポートするには、次の 2 とおりの方法があります。
リソース グループまたはリソースからのエクスポート。 このオプションでは、既存のリソースから新しいテンプレートを生成します。 エクスポートされたテンプレートは、リソース グループの現在の状態の "スナップショット" です。 リソース グループ全体、またはそのリソース グループ内の特定のリソースをエクスポートできます。
履歴から保存。 このオプションでは、デプロイに使用されたテンプレートのそのままのコピーを取得します。 デプロイ履歴からデプロイを指定します。
選択したオプションに応じて、エクスポートされたテンプレートの品質は異なります。
リソース グループまたはリソースから | 履歴から |
---|---|
テンプレートは自動生成されます。 コードをデプロイする前に、改善する必要がある場合があります。 | テンプレートは、テンプレート作成者によって作成されたコピーの正確なコピーです。 変更なしで再デプロイできる状態です。 |
テンプレートは、リソースの現在の状態のスナップショットです。 デプロイ後に手動で行った変更も含まれます。 | テンプレートにはデプロイ時点のリソースの状態のみが表示されます。 デプロイ後に手動で行った変更は含まれません。 |
リソース グループからエクスポートするリソースを選択できます。 | 特定のデプロイに関するすべてのリソースが含まれます。 これらのリソースのサブセットを選択したり、別の時点で追加されたリソースを追加したりすることはできません。 |
テンプレートには、通常はデプロイ中に設定しない一部のプロパティを含め、リソースのすべてのプロパティが含まれています。 テンプレートを再利用する前に、このようなプロパティを削除またはクリーンアップすることをお勧めします。 | テンプレートには、デプロイに必要なプロパティのみが含まれています。 テンプレートはよりスパースであり、読みやすくなっています。 |
テンプレートには、再利用に必要なすべてのパラメーターが含まれていない場合もあります。 ほとんどのプロパティ値は、テンプレートにハードコーディングされています。 他の環境でテンプレートを再デプロイするには、リソースを構成する機能を高めるパラメーターを追加する必要があります。 独自のパラメーターを作成できるように、 [パラメーターを含める] を選択解除できます。 | テンプレートには、さまざまな環境での再デプロイが簡単になるパラメーターが含まれています。 |
次の場合に、リソース グループまたはリソースからテンプレートをエクスポートします。
- 元のデプロイ後に行われたリソースへの変更をキャプチャする必要がある。
- エクスポートするリソースを選択したい。
- テンプレートを使用してリソースを作成していない。
次の場合に、履歴からテンプレートをエクスポートします。
- 再利用しやすいテンプレートがほしい。
- 元のデプロイ後に行った変更を含める必要はない。
制限事項
エクスポートが成功するという保証はありません。 エクスポートは、既存のリソースを運用環境で使用できるテンプレートに変換するための信頼性の高い方法ではありません。 手書きの Bicep ファイル、ARM テンプレート、または terraform を使用して、リソースを最初から作成することをお勧めします。
リソースグループまたはリソースからエクスポートする場合、エクスポートされたテンプレートは、リソースの種類ごとに パブリッシュされたスキーマ から生成されます。 場合によっては、スキーマにリソースの種類に対する最新バージョンがないことがあります。 エクスポートしたテンプレートに必要なプロパティが含まれていることを確認してください。 必要に応じて、エクスポートされたテンプレートを編集し、必要な 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 つまたは複数のリソースを選択します。 すべてを選択するには、 [名前] の左側にあるチェックボックスをオンにします。 上部のメニューにある [テンプレートのエクスポート] を有効にするには、少なくとも 1 つのリソースを選択している必要があります。
上部のメニューから [テンプレートのエクスポート] を選択します。 左側のメニューにある [テンプレートのエクスポート] を選択すると、グループ内のすべてのリソースがテンプレートにエクスポートされます。
エクスポートされたテンプレートが表示され、ダウンロードおよびデプロイできるようになります。
[パラメーターを含める] は、既定で選択されています。 選択すると、テンプレートの生成時にすべてのテンプレート パラメータが含められます。 独自のパラメーターを作成する場合は、パラメーターを含めないようにこのチェックボックスを切り替えます。
リソースからテンプレートをエクスポートする
1 つのリソースをエクスポートするには:
エクスポートするリソースを含むリソース グループを選択します。
エクスポートするリソースを選択して、リソースを選択します。
そのリソースについて、左側のウィンドウで [テンプレートのエクスポート] を選択します。
エクスポートされたテンプレートが表示され、ダウンロードおよびデプロイできるようになります。 このテンプレートには、1 つのリソースのみが含まれています。 [パラメーターを含める] は、既定で選択されています。 選択すると、テンプレートの生成時にすべてのテンプレート パラメータが含められます。 独自のパラメーターを作成する場合は、パラメーターを含めないようにこのチェックボックスを切り替えます。
デプロイ後にテンプレートをエクスポートする
既存のリソースをデプロイするために使用されたテンプレートをエクスポートできます。 取得するテンプレートは、デプロイに使用されたものとまったく同じです。
エクスポートするリソース グループを選択します。
[デプロイ] の下のリンクを選択します。
デプロイ履歴からいずれかのデプロイを選択します。
[テンプレート] を選択します。 このデプロイに使用されているテンプレートが表示され、ダウンロードできるようになります。
次のステップ
- Azure CLI、Azure PowerShell、または REST API を使用してテンプレートをエクスポートする方法を学びます。
- Resource Manager テンプレートの構文については、「Azure Resource Manager テンプレートの構造と構文の詳細」を参照してください。
- テンプレートを開発する方法については、ステップバイステップのチュートリアルのページをご覧ください。