Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Per facilitare la creazione di modelli di Azure Resource Manager, è possibile esportare un modello da risorse esistenti come file Bicep o come modello JSON arm. Il modello esportato consente di comprendere la sintassi e le proprietà necessarie per la distribuzione delle risorse. Per semplificare le distribuzioni future, usare il modello esportato come punto di partenza e personalizzarlo in base alle proprie esigenze. Mentre il processo di esportazione genera un modello funzionale, la maggior parte dei modelli esportati richiede modifiche prima che possano essere usate per la distribuzione.
Resource Manager consente di selezionare una o più risorse per l'esportazione in un modello. Puoi concentrarti esattamente sulle risorse necessarie nel modello.
Questo articolo illustra come esportare modelli tramite Azure PowerShell. Per altre opzioni, vedere:
- Esportare un modello con l'interfaccia della riga di comando di Azure
- Esportare un modello con il portale di Azure
- Esportazione dell'API REST dal gruppo di risorse e esportazione dell'API REST dalla cronologia di distribuzione.
Scegli l'opzione di esportazione corretta
Per esportare un modello sono disponibili due modi:
Esportare da un gruppo di risorse o da una risorsa. Questa opzione genera un nuovo modello da risorse esistenti. Il modello esportato è uno "snapshot" dello stato corrente del gruppo di risorse. Puoi esportare un intero gruppo di risorse o risorse specifiche all'interno di tale gruppo di risorse.
Salva nella cronologia. Questa opzione supporta l'esportazione solo di modelli JSON ARM. Recupera una copia esatta del modello usato per la distribuzione, consentendo di selezionare una distribuzione specifica dalla cronologia di distribuzione. Dopo l'esportazione, è possibile decompilarli nei file Bicep.
A seconda dell'opzione scelta, i modelli esportati hanno qualità diverse.
Dal gruppo di risorse o dalla risorsa | Dalla cronologia |
---|---|
Il modello viene generato automaticamente. È probabile che tu voglia migliorare il codice prima di distribuirlo. | Il modello è una copia esatta di quella creata dall'autore del modello. È pronto per essere ridistribuito senza modifiche. |
Il modello è uno snapshot dello stato corrente delle risorse. Include tutte le modifiche manuali apportate dopo la distribuzione. | Il modello mostra solo lo stato delle risorse al momento della distribuzione. Tutte le modifiche manuali apportate dopo la distribuzione non sono incluse. |
È possibile selezionare quali risorse esportare da un gruppo di risorse. | Sono incluse tutte le risorse per una distribuzione specifica. Non è possibile selezionare un subset di tali risorse o aggiungere risorse che erano state aggiunte in un momento diverso. |
Il modello include tutte le proprietà per le risorse, comprese alcune proprietà che normalmente non vengono impostate durante la distribuzione. Potresti voler rimuovere o eliminare queste proprietà prima di riutilizzare il modello. | Il modello include solo le proprietà necessarie per la distribuzione. Il modello è più sparso e più facile da leggere. |
Il modello probabilmente non include tutti i parametri necessari per il riutilizzo. La maggior parte dei valori delle proprietà è hardcoded nel modello. Per ridistribuire il modello in altri ambienti, devi aggiungere parametri che aumentano la possibilità di configurare le risorse. È possibile deselezionare Includi parametri in modo da poter creare parametri personalizzati. | Il modello include parametri che semplificano la ridistribuzione in ambienti diversi. |
Esportare il modello da un gruppo di risorse o da una risorsa, quando:
- È necessario acquisire le modifiche apportate alle risorse dopo la distribuzione originale.
- Vuoi selezionare le risorse esportate.
- Le risorse non sono state create con un modello.
Esportare il modello dalla cronologia, quando:
- Vuoi un modello facile da riutilizzare.
- Non è necessario includere le modifiche apportate dopo la distribuzione originale.
Limiti
L'esportazione non garantisce l'esito positivo. L'esportazione non è un modo affidabile per trasformare le risorse preesistenti in modelli utilizzabili nell'ambiente di produzione. È preferibile creare risorse da zero usando un file Bicep scritto a mano, un modello arm o terraform.
Quando si esporta da un gruppo di risorse o da una risorsa, il modello esportato viene generato dagli schemi pubblicati per ogni tipo di risorsa. In alcuni casi, lo schema non ha la versione più recente per un tipo di risorsa. Controlla il modello esportato per assicurarti che includa le proprietà necessarie. Eventualmente modifica il modello esportato per usare la versione dell'API necessaria.
Alcuni parametri password potrebbero non essere presenti nei modelli esportati. È necessario controllare il riferimento al modello e aggiungere manualmente questi parametri prima di poter usare i modelli per distribuire le risorse.
La funzionalità modello di esportazione non supporta l'esportazione delle risorse di Azure Data Factory. Per informazioni su come esportare le risorse di Data Factory, vedere Copiare o clonare una data factory in Azure Data Factory.
Per esportare le risorse create tramite il modello di distribuzione classica, è necessario eseguirne la migrazione al modello di distribuzione Resource Manager.
Se durante l'esportazione di un modello visualizzi un avviso che indica che un tipo di risorsa non è stato esportato, puoi comunque individuare le proprietà per tale risorsa. Per le proprietà delle risorse, consultare il riferimento del modello. È anche possibile esaminare l'API REST di Azure per il tipo di risorsa.
Esiste un limite di 200 risorse nel gruppo di risorse per il quale si crea il modello esportato. Se tenti di esportare un gruppo di risorse con più di 200 risorse, viene visualizzato il messaggio di errore Export template is not supported for resource groups more than 200 resources
.
Esportare il modello da un gruppo di risorse
Dopo aver configurato il gruppo di risorse, è possibile esportare un modello di Azure Resource Manager per il gruppo di risorse.
Per esportare tutte le risorse in un gruppo di risorse, usare il cmdlet Export-AzResourceGroup e specificare il nome del gruppo di risorse.
Export-AzResourceGroup -ResourceGroupName demoGroup
Salva il modello come file locale.
Anziché esportare tutte le risorse nel gruppo di risorse, puoi selezionare le risorse da esportare.
Per esportare una risorsa, passa l’ID di tale risorsa.
$resource = Get-AzResource `
-ResourceGroupName <resource-group-name> `
-ResourceName <resource-name> `
-ResourceType <resource-type>
Export-AzResourceGroup `
-ResourceGroupName <resource-group-name> `
-Resource $resource.ResourceId
Per esportare più di una risorsa, passare gli ID risorsa in una matrice.
Export-AzResourceGroup `
-ResourceGroupName <resource-group-name> `
-Resource @($resource1.ResourceId, $resource2.ResourceId)
Quando esporti il modello, puoi specificare se i parametri vengono usati nel modello. Per impostazione predefinita, i parametri per i nomi delle risorse sono inclusi ma non hanno un valore predefinito.
"parameters": {
"serverfarms_demoHostPlan_name": {
"type": "String"
},
"sites_webSite3bwt23ktvdo36_name": {
"type": "String"
}
}
Se usi il parametro -SkipResourceNameParameterization
durante l'esportazione del modello, i parametri per i nomi delle risorse non vengono inclusi nel modello. Al contrario, il nome della risorsa viene impostato direttamente sulla risorsa al valore corrente. Non puoi personalizzare il nome durante la distribuzione.
"resources": [
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2022-09-01",
"name": "demoHostPlan",
...
}
]
Se usi il parametro durante l'esportazione -IncludeParameterDefaultValue
del modello, il parametro del modello include un valore predefinito impostato sul valore corrente. Puoi usare tale valore predefinito o sovrascrivere il valore predefinito passando un valore diverso.
"parameters": {
"serverfarms_demoHostPlan_name": {
"defaultValue": "demoHostPlan",
"type": "String"
},
"sites_webSite3bwt23ktvdo36_name": {
"defaultValue": "webSite3bwt23ktvdo36",
"type": "String"
}
}
Salvare un modello dalla cronologia di distribuzione
Puoi salvare un modello da una distribuzione nella cronologia di distribuzione. Il modello che ottieni è esattamente quello usato per la distribuzione.
Per ottenere un modello da una distribuzione di un gruppo di risorse, usare il cmdlet Save-AzResourceGroupDeploymentTemplate . Specificare il nome della distribuzione da recuperare. Per informazioni su come ottenere il nome di una distribuzione, vedere Visualizzare la cronologia di distribuzione con Azure Resource Manager.
Save-AzResourceGroupDeploymentTemplate -ResourceGroupName demoGroup -DeploymentName demoDeployment
Il modello viene salvato come file locale con il nome della distribuzione.
Per distribuire modelli ad altri livelli, usa:
- Save-AzDeploymentTemplate per le distribuzioni nelle sottoscrizioni
- Save-AzManagementGroupDeploymentTemplate per le distribuzioni nei gruppi di gestione
- Save-AzTenantDeploymentTemplate per distribuire nei tenant
Passaggi successivi
- Informazioni su come esportare modelli con l'interfaccia della riga di comando di Azure, il portale di Azure o l'API REST.
- Per informazioni sulla sintassi del modello di Resource Manager, vedere Comprendere la struttura e la sintassi dei modelli di Azure Resource Manager.
- Per informazioni su come sviluppare modelli, vedere le esercitazioni dettagliate.