Distribuzioni di sottoscrizioni con modelli di Resource Manager
Articolo
Per semplificare la gestione delle risorse, è possibile usare un modello di Azure Resource Manager per distribuire le risorse a livello di sottoscrizione di Azure. Ad esempio, è possibile distribuire nella sottoscrizione i criteri e il Controllo degli accessi in base al ruolo di Azure (Azure RBAC), che li applica nella sottoscrizione. È anche possibile creare gruppi di risorse all'interno della sottoscrizione e distribuire le risorse ai gruppi di risorse nella sottoscrizione.
Nota
È possibile eseguire una distribuzione a livello di sottoscrizione in un massimo di 800 gruppi di risorse diversi.
Per distribuire modelli a livello di sottoscrizione, usare l'interfaccia della riga di comando di Azure, PowerShell, l'API REST o il portale.
Suggerimento
È consigliabile Bicep perché offre le stesse funzionalità dei modelli di ARM e la sintassi è più semplice. Per altre informazioni, vedere Distribuzioni delle sottoscrizioni.
Risorse supportate
Non tutti i tipi di risorse possono essere distribuiti a livello di sottoscrizione. Questa sezione elenca i tipi di risorse supportati.
Per l'interfaccia della riga di comando di Azure usare az deployment sub create. L'esempio seguente distribuisce un modello per creare un gruppo di risorse:
Interfaccia della riga di comando di Azure
az deployment sub create \
--name demoSubDeployment \
--location centralus \
--template-uri"https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/emptyrg.json" \
--parametersrgName=demoResourceGroup rgLocation=centralus
Per il comando di distribuzione di PowerShell, usare New-AzDeployment o il suo alias New-AzSubscriptionDeployment. L'esempio seguente distribuisce un modello per creare un gruppo di risorse:
Per le distribuzioni a livello di sottoscrizione, è necessario specificare un percorso di distribuzione. Il percorso di distribuzione è separato dal percorso delle risorse distribuite e specifica dove archiviare i dati di distribuzione. Anche le distribuzioni di Gruppo di gestione e tenant richiedono una posizione. Per le distribuzioni del gruppo di risorse, il percorso del gruppo di risorse viene usato per archiviare i dati di distribuzione.
È possibile specificare un nome per la distribuzione oppure usare il nome predefinito. Il nome predefinito è il nome del file modello. Ad esempio, la distribuzione di un modello denominato azuredeploy.json crea un nome di distribuzione predefinito di azuredeploy.
Per ogni nome di distribuzione il percorso non è modificabile. Non è possibile creare una distribuzione in un percorso se esiste una distribuzione con lo stesso nome in un percorso diverso. Ad esempio, se si crea una distribuzione di sottoscrizione con il nome deployment1 in centralus , non è possibile creare in seguito un'altra distribuzione con il nome deployment1 ma con posizione westus. Se viene visualizzato il codice di errore InvalidDeploymentLocation, utilizzare un nome diverso o lo stesso percorso come la distribuzione precedente per tale nome.
Ambiti di distribuzione
Quando si esegue la distribuzione in una sottoscrizione, è possibile distribuire le risorse in:
sottoscrizione di destinazione dall'operazione
qualsiasi sottoscrizione nel tenant
gruppi di risorse all'interno della sottoscrizione o di altre sottoscrizioni
tenant per la sottoscrizione
Le uniche transizioni di ambito non consentite vengono eseguite dal gruppo di risorse al gruppo di gestione o dalla sottoscrizione al gruppo di gestione.
È possibile definire l'ambito di una risorsa di estensione in una destinazione diversa da quella di distribuzione.
L'utente che distribuisce il modello deve avere accesso all’ambito specificato.
Questa sezione mostra come specificare ambiti diversi. Questi ambiti diversi possono essere combinati in un singolo modello.
Ambito della sottoscrizione di destinazione
Per distribuire le risorse nella sottoscrizione di destinazione, aggiungere tali risorse alla sezione resources del modello.
Per distribuire le risorse in una sottoscrizione diversa dalla sottoscrizione dell'operazione, aggiungere una distribuzione annidata. Impostare la subscriptionId proprietà sull'ID della sottoscrizione in cui si vuole eseguire la distribuzione. Impostare la location proprietà per la distribuzione annidata.
Per distribuire le risorse in un gruppo di risorse all'interno della sottoscrizione, aggiungere una distribuzione annidata e includere la resourceGroup proprietà . Nell'esempio seguente, la distribuzione nidificata è destinata a un gruppo di risorse denominato demoResourceGroup.
Per creare un gruppo di risorse in un modello di Resource Manager, definire una risorsa Microsoft.Resources/resourceGroups con un nome e una posizione per il gruppo di risorse.
Il modello seguente crea un gruppo di risorse vuoto.
Per creare un gruppo di risorse e distribuire risorse a tale gruppo, usare un modello annidato. Questo tipo di modello definisce le risorse da distribuire al gruppo. Impostare il modello annidato come dipendente dal gruppo di risorse per assicurarsi che il gruppo sia presente prima della distribuzione delle risorse. È possibile eseguire la distribuzione in un massimo di 800 gruppi di risorse.
L'esempio seguente crea un gruppo di risorse e distribuisce un account di archiviazione al gruppo.
L'esempio seguente assegna una definizione di criteri esistente alla sottoscrizione. Se la definizione di criteri accetta parametri, specificarli come oggetto. Se non accetta parametri, usare l'oggetto vuoto predefinito.
Per creare la definizione di criteri nella sottoscrizione e assegnarla alla sottoscrizione, usare il comando seguente dell'interfaccia della riga di comando:
Interfaccia della riga di comando di Azure
az deployment sub create \
--name demoDeployment \
--location centralus \
--template-uri"https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/policydefineandassign.json"
Per distribuire questo modello con PowerShell, usare:
Azure Microsoft.Resources/resourceGroups syntax and properties to use in Azure Resource Manager templates for deploying the resource. API version latest