Eseguire la migrazione dei progetti agli stack di distribuzione
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 dello spazio dei Microsoft.Resources
nomi, portando le funzionalità di Azure Blueprint in questa area.
Passaggi per la migrazione
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.
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. È anche possibile incorporare nel
policyDefinitions
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 specifiche di modello non sono necessarie per usare stack di distribuzione.
-
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, vedere Stack di distribuzione.
Facoltativamente, è possibile creare specifiche di modello per i modelli di Resource Manager convertiti o i file Bicep. 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 o modelli arm/file Bicep in un ambito di destinazione specificato.
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@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 }
}