Important
Azure Blueprints (プレビュー) は 2027 年 1 月 31 日に廃止され、2026 年 7 月 31 日から段階的に廃止されます。 既存のブループリント定義と割り当てを デプロイ スタック (推奨) と テンプレート スペックに移行します。 ブループリント アーティファクトは、デプロイ スタックの定義に使用される ARM JSON テンプレートまたはBicep ファイルに変換されます。 完全な段階的スケジュール、影響、および FAQ については、Azure Blueprints の廃止またはhttps://aka.ms/AzureBlueprintsRetirementをご覧ください。 アーティファクトを ARM リソースとして作成する方法については、以下を参照してください。
この記事では、ブループリントの定義と割り当てをデプロイ スタックに変換する方法について説明します。 デプロイ スタックは Microsoft.Resources 名前空間内の新しいツールであり、Azure Blueprint 機能をこの領域に取り込みます。
移行の手順
ブループリント定義を、Azure ポリシー、Azure ロールの割り当て、およびテンプレートの成果物を含むブループリント定義 JSON ファイルにエクスポートします。 詳細については、「ブループリント定義をエクスポートする」を参照してください。
ブループリント定義 JSON ファイルを 1 つの ARM テンプレートまたは Bicep ファイルに変換し、デプロイ スタックを介してデプロイします。次の考慮事項があります。
- ロールの割り当て: ロールの割り当てを変換します。
-
ポリシー: ポリシーの割り当てを Bicep (または ARM JSON テンプレート) 構文に変換し、メイン テンプレートに追加します。
policyDefinitionsを JSON テンプレートに埋め込むこともできます。 - テンプレート: 任意のテンプレートを、デプロイ スタックに送信するためのメイン テンプレートに変換します。 Bicep でモジュールを使用したり、テンプレートを入れ子になったテンプレートまたはテンプレート リンクとして埋め込んだり、必要に応じてテンプレート スペックを使用してテンプレートを Azure に格納したりすることができます。 デプロイ スタックを使用するのに Template Specs は必要ありません。
-
ロック: DenySettingsMode デプロイ スタックを使用すると、
DenySettingsModeを介して不要な変更をブロックできます (ブループリントのロックと同様)。 これらの構成は、Azure CLI または Azure PowerShell を介して行うことができます。 これを行うには、対応するロールが拒否設定を設定できる必要があります。 詳しくは、デプロイ スタックに関するページを参照してください。
必要に応じて、変換された ARM テンプレートまたは Bicep ファイルのテンプレート スペックを作成できます。 テンプレート スペックを使用すると、テンプレートとそのバージョンを Azure 環境に格納できるため、組織全体でのテンプレートの共有が簡略化されます。 デプロイ スタックを使用すると、テンプレート スペック定義または ARM テンプレート/Bicep ファイルを、指定されたターゲット スコープにデプロイできます。
サンプル
次の Bicep ファイルは、サンプルの移行ファイルです。
targetScope = 'subscription'
param roleAssignmentName string = 'myTestRoleAssignment'
param roleDefinitionId string = guid(roleAssignmentName)
param principalId string = guid('myTestId')
param policyAssignmentName string = 'myTestPolicyAssignment'
param policyDefinitionID string = '/providers/Microsoft.Authorization/policyDefinitions/06a78e20-9358-41c9-923c-fb736d382a4d'
param rgName string = 'myTestRg'
param rgLocation string = deployment().location
param templateSpecName string = 'myNetworkingTs'
// Step 1 - create role assignments
resource roleAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
name: guid(roleAssignmentName)
properties: {
principalId: principalId
roleDefinitionId: roleDefinitionId
}
}
// Step 2 - create policy assignments
resource policyAssignment 'Microsoft.Authorization/policyAssignments@2025-03-01' = {
name: policyAssignmentName
scope: subscriptionResourceId('Microsoft.Resources/resourceGroups', resourceGroup().name)
properties: {
policyDefinitionId: policyDefinitionID
}
}
// Step 3 - create template artifacts via modules (or template specs)
resource rg1 'Microsoft.Resources/resourceGroups@2025-04-01' = {
name: rgName
location: rgLocation
}
module vnet 'templates/bicep/vnet.bicep' = if (rgName == 'myTestRg') {
name: uniqueString(rgName)
scope: rg1
params: { location: rgLocation }
}
テンプレート スペックに移行する
変換されたテンプレートを直接デプロイするのではなく、Azureに保存してバージョン管理する場合は、テンプレート スペックとして発行し、デプロイ スタックを使用してテンプレート スペックをデプロイします。 テンプレート スペックは、ブループリント定義で提供された成果物ストレージとバージョン管理ロールに代わるものになります。 詳細な手順については、「Azure Blueprintsをテンプレート スペックに移行する」を参照してください。