Freigeben über


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

  1. 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.

  2. 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.
  3. 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 }
}