Migrieren von Blaupausen zu Bereitstellungsstapeln
In diesem Artikel wird erläutert, wie Sie Ihre Blaupausendefinitionen und -zuordnungen in Bereitstellungsstapel konvertieren. Bereitstellungsstapel sind neue Tools im Microsoft.Resources
-Namespace. Dadurch können Azure Blueprint-Features in diesem Bereich genutzt werden.
Schritte bei der Migration
Exportieren Sie die Blaupausendefinitionen in die JSON-Dateien für Blaupausendefinitionen, die Artefakte von Azure-Richtlinien, Azure-Rollenzuweisungen und Vorlagen enthalten. Weitere Informationen finden Sie unter Exportieren der Blaupausendefinition.
Konvertieren Sie die JSON-Dateien für Blaupausendefinitionen in eine einzelne ARM-Vorlage oder Bicep-Datei, die über Bereitstellungsstapel bereitgestellt werden soll. Berücksichtigen Sie dabei die folgenden Aspekte:
- Rollenzuweisungen: Konvertieren Sie alle Rollenzuweisungen.
-
Richtlinien: Konvertieren Sie alle Richtlinienzuweisungen in die Bicep-Syntax (oder ARM-JSON-Vorlage), und fügen Sie sie dann ihrer Hauptvorlage hinzu. Sie können
policyDefinitions
auch in die JSON-Vorlage einbetten. - Vorlagen: Konvertieren Sie alle Vorlagen in eine Hauptvorlage für die Übermittlung an einen Bereitstellungsstapel. Sie können Module in Bicep verwenden, Vorlagen als geschachtelte Vorlagen oder Vorlagenlinks einbetten und optional Vorlagenspezifikationen verwenden, um Ihre Vorlagen in Azure zu speichern. Vorlagenspezifikationen sind nicht erforderlich, um Bereitstellungsstapel zu verwenden.
-
Sperren: Der Bereitstellungsstapel DenySettingsMode bietet Ihnen die Möglichkeit, unerwünschte Änderungen über
DenySettingsMode
zu blockieren (ähnlich wie Blaupausensperren). Sie können zum Konfigurieren die Azure CLI oder Azure PowerShell verwenden. Dazu benötigen Sie entsprechende Rollen, um Ablehnungseinstellungen festlegen zu können. Weitere Informationen finden Sie unter Bereitstellungsstapel.
Sie können optional Vorlagenspezifikationen für die konvertierten ARM-Vorlagen oder Bicep-Dateien erstellen. Mit Vorlagenspezifikationen können Sie Vorlagen und deren Versionen in Ihrer Azure-Umgebung speichern und damit die Freigabe der Vorlagen in der gesamten Organisation vereinfachen. Mit Bereitstellungsstapeln können Sie Vorlagenspezifikationsdefinitionen oder ARM-Vorlagen/Bicep-Dateien in einem bestimmten Zielbereich bereitstellen.
Beispiel
Die folgende Bicep-Datei ist eine Beispielmigrationsdatei.
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@2022-06-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@2021-01-01' = {
name: rgName
location: rgLocation
}
module vnet 'templates/bicep/vnet.bicep' = if (rgName == 'myTestRg') {
name: uniqueString(rgName)
scope: rg1
params: { location: rgLocation }
}