Partage via


Migrer des blueprints vers des piles de déploiement

Cet article explique comment convertir vos attributions et fichiers de définitions Blueprint en piles de déploiement. Les piles de déploiement sont de nouveaux outils dans l’espace de noms Microsoft.Resources qui permettent d’apporter les fonctionnalités Azure Blueprint dans cette zone.

Étapes de la migration

  1. Exportez les fichiers de définitions de blueprint dans des fichiers JSON de définition de blueprint qui incluent les artefacts de stratégies Azure, les attributions de rôle Azure et les modèles. Pour découvrir plus d’informations, consultez Exporter votre fichier de définition de blueprint.

  2. Convertissez les fichiers JSON de définition de blueprint en modèle ARM unique ou en fichier Bicep à déployer via des piles de déploiement avec les considérations suivantes :

    • Attributions de rôle : convertissez n’importe quelle attribution de rôle.
    • Stratégies : convertissez n’importe quelle attribution de stratégie dans une syntaxe Bicep (ou un modèle JSON ARM), puis ajoutez-la à votre modèle principal. Vous pouvez également incorporer le policyDefinitions dans le modèle JSON.
    • Modèles : convertissez n’importe quel modèle en modèle principal pour soumission à une pile de déploiement. Vous pouvez utiliser des modules dans Bicep, incorporer des modèles comme modèles imbriqués ou liens de modèle et éventuellement utiliser des spes de modèle pour stocker vos modèles dans Azure. Les specs de modèle ne sont pas requises pour utiliser des piles de déploiement.
    • Verrous : la pile de déploiement DenySettingsMode vous offre la possibilité de bloquer des modifications indésirables via DenySettingsMode (semblable à des verrous Blueprint). Vous pouvez les configurer via l’interface Azure CLI ou Azure PowerShell. Pour ce faire, vous avez besoin des rôles correspondants pour pouvoir définir des paramètres de refus. Pour plus d'informations, voir Piles de déploiement.
  3. Vous pouvez éventuellement créer des specs de modèle pour les modèles ARM ou les fichiers Bicep convertis. Les specs de modèle vous permettent de stocker des modèles et leurs versions dans votre environnement Azure, ce qui simplifie le partage de modèles dans votre organisation. Les piles de déploiement vous permettent de déployer des fichiers de définitions de spec de modèle ou des fichiers Bicep/modèles ARM sur une étendue cible spécifiée.

Exemple

Le fichier Bicep suivant est un exemple de fichier de migration.

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 }
}