Migrare i modelli negli stack di implementazione

Importante

Azure Blueprints (anteprima) verrà ritirata il 31 gennaio 2027, con un ritiro graduale a partire dal 31 luglio 2026. Esegui la migrazione delle definizioni e assegnazioni dei blueprint esistenti a stack di distribuzione (consigliato) e Specifiche modello. Gli artefatti del progetto vengono convertiti in modelli JSON ARM o Bicep file usati per definire gli stack di distribuzione. Per le tempistiche complete, l'impatto e le domande frequenti, vedi ritiro di Azure Blueprints o https://aka.ms/AzureBlueprintsRetirement. Per informazioni su come definire un artefatto come risorsa ARM, vedere:

Questo articolo illustra come convertire le definizioni e le assegnazioni del progetto in stack di distribuzione. Gli stack di distribuzione sono nuovi strumenti all'interno del namespace Microsoft.Resources, che introducono in quest'area le funzionalità di Azure Blueprint.

Passaggi per la migrazione

  1. Esportare le definizioni di progetto nei file JSON di definizione del progetto che includono gli artefatti dei criteri di Azure, le assegnazioni di ruolo di Azure e i modelli. Per altre informazioni, vedere Esportare la definizione del progetto.

  2. Convertire i file JSON di definizione del progetto in un singolo modello arm o file Bicep da distribuire tramite stack di distribuzione con le considerazioni seguenti:

    • Assegnazioni di ruolo: converte tutte le assegnazioni di ruolo.
    • Criteri: convertire le assegnazioni di criteri nella sintassi Bicep (o modello JSON ARM) e quindi aggiungerle al modello principale. Puoi anche incorporare il policyDefinitions nel modello JSON.
    • Modelli: convertire tutti i modelli in un modello principale per l'invio in uno stack di distribuzione. È possibile usare i moduli in Bicep, incorporare modelli come modelli annidati o collegamenti ai modelli e, facoltativamente, usare le specifiche di modello per archiviare i modelli in Azure. Le Template Specs non sono necessarie per usare gli stack di deployment.
    • Blocchi: lo stack di distribuzione DenySettingsMode consente di bloccare le modifiche indesiderate tramite DenySettingsMode (analogamente ai blocchi di Blueprint). È possibile configurare questi elementi tramite l'interfaccia della riga di comando di Azure o Azure PowerShell. A tale scopo, è necessario che i ruoli corrispondenti siano in grado di impostare le impostazioni di negazione. Per altre informazioni, vedi stack di distribuzione.
  3. Facoltativamente, è possibile creare specifiche di modello per i modelli ARM o i file Bicep convertiti. Le specifiche dei modelli consentono di archiviare i modelli e le relative versioni nell'ambiente Azure, semplificando la condivisione dei modelli nell'organizzazione. Gli stack di distribuzione consentono di distribuire definizioni di specifiche di modello oppure modelli ARM/file Bicep in un ambito di destinazione specifico.

Esempio

Il file Bicep seguente è un file di migrazione di esempio.

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

Eseguire la migrazione alle specifiche del modello

Se si vuole archiviare e aggiornare i modelli convertiti in Azure anziché distribuirli direttamente, pubblicarli come specifiche di modello e distribuire la specifica di modello con uno stack di distribuzione. Le specifiche del modello sostituiscono l'archiviazione degli artefatti e il ruolo di controllo delle versioni forniti dalle definizioni del progetto. Per istruzioni dettagliate, vedere Eseguire la migrazione di Azure Blueprints alle specifiche del modello.

Passaggi successivi