PowerShell を使用したブループリント定義のインポートとエクスポート
重要
2026 年 7 月 11 日に、Blueprints (プレビュー) は非推奨になります。 既存のブループリントの定義と割り当てを Template Specs とデプロイ スタックに移行します。 ブループリント アーティファクトは、デプロイ スタックの定義に使用される ARM JSON テンプレートまたは Bicep ファイルに変換されます。 アーティファクトを ARM リソースとして作成する方法については、次を参照してください。
Azure Blueprints は、Azure portal で完全に管理できます。 組織では、Azure Blueprints の使用を進める場合、ブループリント定義をマネージド コードとして考える必要があります。 この概念は、多くの場合、Infrastructure as Code (IaC) と呼ばれます。 ブループリント定義をコードとして扱うことは、Azure portal の機能にはない利点があります。 次のような利点があります。
- ブループリント定義の共有
- ブループリント定義のバックアップ
- 異なるテナントまたはサブスクリプションでのブループリント定義の再利用
- ソース管理へのブループリント定義の配置
- テスト環境でのブループリント定義の自動テスト
- 継続的インテグレーションと継続的デプロイ (CI/CD) パイプラインのサポート
理由にかかわらず、ブループリント定義をコードとして管理することには利点があります。 この記事では、Az.Blueprint モジュールで Import-AzBlueprintWithArtifact
および Export-AzBlueprintWithArtifact
コマンドを使用する方法について説明します。
前提条件
この記事では、Azure Blueprints に関する実用的な知識があることを前提としています。 そうでない場合は、次の記事を参照してください。
- ポータルでブループリントを作成する
- デプロイ ステージとブループリントのライフサイクルについて確認する
- PowerShell を使用したブループリントの定義と割り当ての作成と管理
まだインストールされていない場合は、「Az.Blueprint モジュールを追加する」の手順に従って、PowerShell ギャラリーから Az.Blueprint モジュールをインストールして検証します。
ブループリント定義のフォルダー構造
ブループリントのエクスポートとインポートについて確認する前に、ブループリント定義を構成するファイルがどのような構造であるかを見てみましょう。 ブループリント定義は、専用のフォルダーに格納するようにします。
重要
Import-AzBlueprintWithArtifact
コマンドレットの Name パラメーターに値が渡されない場合は、ブループリント定義が格納されているフォルダーの名前が使用されます。
ブループリント定義 (blueprint.json
という名前を付ける必要があります) と共に、ブループリント定義を構成する成果物があります。 各成果物は、必ず artifacts
という名前のサブフォルダー内に存在します。
まとめると、ブループリント定義の構造は、フォルダー内の JSON ファイルとして、次のようになります。
.
|
|- MyBlueprint/ _______________ # Root folder name becomes default name of blueprint definition
| |- blueprint.json __________ # The blueprint definition. Fixed name.
|
| |- artifacts/ ______________ # Subfolder for all blueprint artifacts. Fixed name.
| |- artifact.json ________ # Blueprint artifact as JSON file. Artifact named from file.
| |- ...
| |- more-artifacts.json
ブループリント定義をエクスポートする
ブループリント定義をエクスポートする手順は簡単です。 ブループリント定義をエクスポートすると、共有、バックアップ、またはソース管理への配置に便利な場合があります。
-
Blueprint [必須]
- ブループリント定義を指定します
-
Get-AzBlueprint
を使用して参照オブジェクトを取得します
-
OutputPath [必須]
- ブループリント定義の JSON ファイルを保存するパスを指定します
- 出力ファイルは、ブループリント定義の名前を含むサブフォルダー内にあります
-
Version (省略可能)
- Blueprint 参照オブジェクトに複数のバージョンへの参照が含まれている場合に出力するバージョンを指定します。
{subId}
のように表されるサブスクリプションからエクスポートするブループリント定義への参照を取得します。# Login first with Connect-AzAccount if not using Cloud Shell # Get version '1.1' of the blueprint definition in the specified subscription $bpDefinition = Get-AzBlueprint -SubscriptionId '{subId}' -Name 'MyBlueprint' -Version '1.1'
Export-AzBlueprintWithArtifact
コマンドレットを使用して、指定したブループリント定義をエクスポートします。Export-AzBlueprintWithArtifact -Blueprint $bpDefinition -OutputPath 'C:\Blueprints'
ブループリント定義をインポートする
エクスポートしたブループリント定義があるか、必要なフォルダー構造に手動で作成したブループリント定義がある場合は、そのブループリント定義を別の管理グループまたはサブスクリプションにインポートすることができます。
組み込みのブループリント定義の例については、Azure Blueprints の GitHub リポジトリを参照してください。
-
Name [必須]
- 新しいブループリント定義の名前を指定します
-
InputPath [必須]
- ブループリント定義の作成に使用するパスを指定します
- 必要なフォルダー構造と一致する必要があります
-
ManagementGroupId (省略可能)
- 現在のコンテキストが既定値でない場合にブループリント定義を保存する管理グループ ID
- ManagementGroupId または SubscriptionId を指定する必要があります
-
SubscriptionId (省略可能)
- 現在のコンテキストが既定値でない場合にブループリント定義を保存するサブスクリプション ID
- ManagementGroupId または SubscriptionId を指定する必要があります
Import-AzBlueprintWithArtifact
コマンドレットを使用して、指定したブループリント定義をインポートします。# Login first with Connect-AzAccount if not using Cloud Shell Import-AzBlueprintWithArtifact -Name 'MyBlueprint' -ManagementGroupId 'DevMG' -InputPath 'C:\Blueprints\MyBlueprint'
ブループリント定義をインポートしたら、PowerShell を使用して割り当てます。
高度なブループリント定義の作成の詳細については、次の記事を参照してください。
- 静的および動的なパラメーターを使用する。
- ブループリントの優先順位をカスタマイズする。
- ブループリント リソースのロックを使用してデプロイを保護する。
- ブループリントをコードとして管理する。
次のステップ
- ブループリントのライフサイクルを参照する。
- 静的および動的パラメーターの使用方法を理解する。
- ブループリントの優先順位のカスタマイズを参照する。
- ブループリントのリソース ロックの使用方法を調べる。
- ブループリントの割り当て時の問題を一般的なトラブルシューティングで解決する。