Usare l'interfaccia della riga di comando di Azure per esportare un modello

Per facilitare la creazione di modelli di Azure Resource Manager, è possibile esportare un modello da risorse esistenti. Il modello esportato consente di comprendere la sintassi e le proprietà JSON che distribuiscono le risorse. Per automatizzare le distribuzioni future, inizia con il modello esportato e modificalo per lo scenario in uso. Il processo di esportazione modello tenta di creare un modello utilizzabile. Tuttavia, la maggior parte dei modelli esportati richiede alcune modifiche prima di poter essere usati per distribuire le risorse di Azure.

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 mostra come esportare modelli tramite l’interfaccia della riga di comando di Azure. Per altre opzioni, vedi:

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 dalla cronologia. Questa opzione recupera una copia esatta di un modello usato per la distribuzione. Specifica la distribuzione dalla cronologia di distribuzione.

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. Puoi 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 di ARM oTerraform.

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, vedi Copiare o clonare una data factory in Azure Data Factory.

Per esportare le risorse create tramite il modello di distribuzione classico, è 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, vedi informazioni di riferimento sul modello. Puoi anche 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 correttamente il gruppo di risorse, puoi esportare un modello di Azure Resource Manager per il gruppo di risorse.

Per esportare tutte le risorse in un gruppo di risorse, usa az group export e specifica il nome del gruppo di risorse.

az group export --name demoGroup

Lo script mostra il modello nella console. Per salvare in un file, usa:

az group export --name demoGroup > exportedtemplate.json

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.

storageAccountID=$(az resource show --resource-group demoGroup --name demostg --resource-type Microsoft.Storage/storageAccounts --query id --output tsv)
az group export --resource-group demoGroup --resource-ids $storageAccountID

Per esportare più di una risorsa, passa gli ID delle risorse separati da uno spazio. Per esportare tutte le risorse, non specificare questo argomento o fornisci "*".

az group export --resource-group <resource-group-name> --resource-ids $storageAccountID1 $storageAccountID2

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 --skip-resource-name-params 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 --include-parameter-default-value 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, usa il comando az deployment group export . Specificare il nome della distribuzione da recuperare. Per informazioni su come ottenere il nome di una distribuzione, vedi Visualizzare la cronologia di distribuzione con Azure Resource Manager.

az deployment group export --resource-group demoGroup --name demoDeployment

Il modello viene visualizzato nella console. Per salvare il file, usa:

az deployment group export --resource-group demoGroup --name demoDeployment > demoDeployment.json

Per distribuire modelli ad altri livelli, usa:

Passaggi successivi