Esportare un modello di Azure Resource Manager da risorse esistentiExport an Azure Resource Manager template from existing resources

Questo articolo illustra come esportare un modello di Resource Manager dalle risorse esistenti della sottoscrizione.In this article, you learn how to export a Resource Manager template from existing resources in your subscription. Il modello generato può essere usato per comprendere meglio la sintassi del modello.You can use that generated template to gain a better understanding of template syntax.

Per esportare un modello sono disponibili due modi:There are two ways to export a template:

  • È possibile esportare il modello effettivo usato per la distribuzione.You can export the actual template used for deployment. Il modello esportato include tutti i parametri e le variabili uguali a quelli visualizzati nel modello originale.The exported template includes all the parameters and variables exactly as they appeared in the original template. Questo approccio è utile quando si sono distribuite risorse tramite il portale e si vuole visualizzare il modello con cui sono state create.This approach is helpful when you deployed resources through the portal, and want to see the template to create those resources. Il modello è immediatamente utilizzabile.This template is readily usable.
  • È possibile esportare un modello generato che rappresenta lo stato corrente del gruppo di risorse.You can export a generated template that represents the current state of the resource group. Il modello esportato non si basa su un modello qualsiasi usato per la distribuzione,The exported template is not based on any template that you used for deployment. ma crea un modello che è uno snapshot del gruppo di risorse.Instead, it creates a template that is a snapshot of the resource group. Il modello esportato ha diversi valori hardcoded e probabilmente meno parametri di quelli che si definiscono in genere.The exported template has many hard-coded values and probably not as many parameters as you would typically define. Questo approccio è utile quando il gruppo di risorse è stato modificato dopo la distribuzione.This approach is useful when you have modified the resource group after deployment. Il modello richiede in genere modifiche prima di poter essere usato.This template usually requires modifications before it is usable.

Questo argomento illustra entrambi gli approcci tramite il portale.This topic shows both approaches through the portal.

Distribuire le risorseDeploy resources

Per iniziare, distribuire in Azure risorse utilizzabili per l'esportazione come modello.Let's start by deploying resources to Azure that you can use for exporting as a template. Se la sottoscrizione include già un gruppo di risorse che si vuole esportare in un modello, è possibile ignorare questa sezione.If you already have a resource group in your subscription that you want to export to a template, you can skip this section. Il resto di questo articolo presuppone che sia stata distribuita la soluzione di app Web e database SQL illustrata in questa sezione.The remainder of this article assumes you have deployed the web app and SQL database solution shown in this section. Se si usa un'altra soluzione, l'esperienza potrebbe essere leggermente diversa, ma i passaggi per esportare un modello saranno gli stessi.If you use a different solution, your experience might be a little different, but the steps to export a template are the same.

  1. Nel portale di Azure selezionare Nuovo.In the Azure portal, select New.

    Selezionare Nuovo

  2. Cercare App Web e SQL e selezionare tale voce nelle opzioni disponibili.Search for web app + SQL and select it from the available options.

    Cercare App Web e SQL

  3. Selezionare Crea.Select Create.

    Selezionare Crea

  4. Specificare i valori necessari per l'app Web e il database SQL.Provide the required values for the web app and SQL database. Selezionare Crea.Select Create.

    Specificare i valori per Web e SQL

La distribuzione può richiedere un minuto.The deployment may take a minute. Al termine della distribuzione, la sottoscrizione conterrà la soluzione.After the deployment finishes, your subscription contains the solution.

Visualizzare il modello dalla cronologia delle distribuzioniView template from deployment history

  1. Passare al pannello Gruppo di risorse per il nuovo gruppo di risorse.Go to the resource group blade for your new resource group. Si noti che il pannello visualizza il risultato dell'ultima distribuzione.Notice that the blade shows the result of the last deployment. Selezionare questo collegamento.Select this link.

    pannello Gruppo di risorse

  2. Viene visualizzata la cronologia delle distribuzioni per il gruppo.You see a history of deployments for the group. In questo caso il pannello probabilmente elenca solo una distribuzione.In your case, the blade probably lists only one deployment. Selezionare questa distribuzione.Select this deployment.

    ultima distribuzione

  3. Il pannello visualizza un riepilogo della distribuzione.The blade displays a summary of the deployment. Il riepilogo include lo stato della distribuzione e le relative operazioni e i valori specificati per i parametri.The summary includes the status of the deployment and its operations and the values that you provided for parameters. Per visualizzare il modello usato per la distribuzione, selezionare Visualizza modello.To see the template that you used for the deployment, select View template.

    visualizzare il riepilogo della distribuzione

  4. Resource Manager recupera i sette file seguenti.Resource Manager retrieves the following seven files for you:

    1. Modello : modello che definisce l'infrastruttura per la soluzione.Template - The template that defines the infrastructure for your solution. Quando è stato creato l'account di archiviazione tramite il portale, Resource Manager ha usato un modello per distribuirlo e ha salvato tale modello come riferimento futuro.When you created the storage account through the portal, Resource Manager used a template to deploy it and saved that template for future reference.
    2. Parametri : file dei parametri che può essere usato per passare i valori durante la distribuzione.Parameters - A parameter file that you can use to pass in values during deployment. Contiene i valori specificati durante la prima distribuzione.It contains the values that you provided during the first deployment. Quando si ridistribuisce il modello è possibile modificare qualsiasi valore.You can change any of these values when you redeploy the template.
    3. Interfaccia della riga di comando : file di script dell'interfaccia della riga di comando di Azure che può essere usato per distribuire il modello.CLI - An Azure command-line-interface (CLI) script file that you can use to deploy the template.
    4. Interfaccia della riga di comando 2.0: file di script dell'interfaccia della riga di comando di Azure che può essere usato per distribuire il modello.CLI 2.0 - An Azure command-line-interface (CLI) script file that you can use to deploy the template.
    5. PowerShell : file di script di Azure PowerShell che può essere usato per distribuire il modello.PowerShell - An Azure PowerShell script file that you can use to deploy the template.
    6. .NET : classe .NET che può essere usata per distribuire il modello..NET - A .NET class that you can use to deploy the template.
    7. Ruby : classe Ruby che può essere usata per distribuire il modello.Ruby - A Ruby class that you can use to deploy the template.

      I file sono disponibili mediante collegamenti nel pannello.The files are available through links across the blade. Per impostazione predefinita, il pannello visualizza il modello.By default, the blade displays the template.

      Visualizza modello

Questo è il modello effettivo usato per creare l'app Web e il database SQL.This template is the actual template used to create your web app and SQL database. Si noti che contiene parametri che consentono di specificare diversi valori durante la distribuzione.Notice it contains parameters that enable you to provide different values during deployment. Per altre informazioni sulla struttura del modello, vedere Creazione di modelli di Azure Resource Manager.To learn more about the structure of a template, see Authoring Azure Resource Manager templates.

Esportare il modello da un gruppo di risorseExport the template from resource group

Se le risorse sono state modificate manualmente o aggiunte in più distribuzioni, il modello recuperato dalla cronologia delle distribuzioni non riflette lo stato corrente del gruppo di risorse.If you have manually changed your resources or added resources in multiple deployments, retrieving a template from the deployment history does not reflect the current state of the resource group. Questa sezione illustra come esportare un modello che rispecchia tale stato.This section shows you how to export a template that reflects the current state of the resource group.

Nota

Non è possibile esportare un modello per un gruppo di risorse con più di 200 risorse.You cannot export a template for a resource group that has more than 200 resources.

  1. Per visualizzare il modello per un gruppo di risorse, selezionare Script di automazione.To view the template for a resource group, select Automation script.

    esportare un gruppo di risorse

    Resource Manager valuta le risorse nel gruppo di risorse e genera un modello per tali risorse.Resource Manager evaluates the resources in the resource group, and generates a template for those resources. Non tutti i tipi di risorse supportano la funzione di esportazione del modello.Not all resource types support the export template function. Potrebbe essere visualizzato un errore che informa di un problema con l'esportazione.You may see an error stating that there is a problem with the export. Per informazioni su come gestire tali problemi, vedere la sezione Risolvere i problemi di esportazione .You learn how to handle those issues in the Fix export issues section.

  2. Vengono visualizzati di nuovo i sei file che è possibile usare per ridistribuire la soluzione.You again see the six files that you can use to redeploy the solution. Questa volta, tuttavia, il modello è leggermente diverso.However, this time the template is a little different. Si noti che il modello generato contiene un numero inferiore di parametri rispetto al modello della sezione precedente.Notice that the generated template contains fewer parameters than the template in previous section. Inoltre, molti di questi valori (come i valori relativi a località e SKU) sono hardcoded nel modello e non accettano un valore di parametro.Also, many of the values (like location and SKU values) are hard-coded in this template rather than accepting a parameter value. Prima di riusare il modello, può essere opportuno modificarlo per usare meglio i parametri.Before reusing this template, you might want to edit the template to make better use of parameters.

  3. Per continuare a usare questo modello, sono disponibili due opzioni.You have a couple of options for continuing to work with this template. È possibile scaricare il modello e usare un editor JSON per lavorare in locale.You can either download the template and work on it locally with a JSON editor. In alternativa, è possibile salvare il modello nella libreria e lavorare tramite il portale.Or, you can save the template to your library and work on it through the portal.

    Se si ha familiarità con un editor di JSON come Visual Studio Code o Visual Studio, è preferibile scaricare il modello in locale e usare l'editor.If you are comfortable using a JSON editor like VS Code or Visual Studio, you might prefer downloading the template locally and using that editor. Per lavorare in locale, selezionare Scarica.To work locally, select Download.

    scaricare il modello

    Se non si ha familiarità con un editor JSON, è preferibile modificare il modello tramite il portale.If you are not set up with a JSON editor, you might prefer editing the template through the portal. Nelle sezioni successive di questo argomento si presuppone che il modello sia stato salvato nella libreria nel portale.The remainder of this topic assumes you have saved the template to your library in the portal. Tuttavia, si apportano le stesse modifiche di sintassi al modello lavorando tramite il portale o in locale con un editor di JSON.However, you make the same syntax changes to the template whether working locally with a JSON editor or through the portal. Per usare il portale, selezionare Aggiungi a raccolta.To work through the portal, select Add to library.

    aggiungere alla libreria

    Quando si aggiunge un modello alla libreria, assegnare un nome e una descrizione al modello.When adding a template to the library, give the template a name and description. Selezionare quindi Salva.Then, select Save.

    impostare i valori di modello

  4. Per visualizzare un modello salvato nella libreria, selezionare Altri servizi, digitare Modelli per filtrare i risultati, quindi selezionare Modelli.To view a template saved in your library, select More services, type Templates to filter results, select Templates.

    trovare i modelli

  5. Selezionare il modello con il nome salvato.Select the template with the name you saved.

    selezionare modello

Personalizzare il modelloCustomize the template

Il modello esportato funziona correttamente se si vuole creare la stessa app Web e lo stesso database SQL per ogni distribuzione.The exported template works fine if you want to create the same web app and SQL database for every deployment. Le opzioni disponibili in Resource Manager consentono, tuttavia, di distribuire modelli con maggiore flessibilità.However, Resource Manager provides options so that you can deploy templates with a lot more flexibility. Questo articolo illustra come aggiungere parametri per il nome e la password di amministratore del database.This article shows you how to add parameters for the database administrator name and password. Questo stesso approccio può essere usato per aggiungere maggiore flessibilità per altri valori del modello.You can use this same approach to add more flexibility for other values in the template.

  1. Per personalizzare il modello, selezionare Modifica.To customize the template, select Edit.

    visualizzare il modello

  2. Selezionare il modello.Select the template.

    modificare un modello

  3. Per poter passare i valori da specificare durante la distribuzione, aggiungere i due parametri seguenti nella sezione parameters del modello:To be able to pass the values that you might want to specify during deployment, add the following two parameters to the parameters section in the template:

    "administratorLogin": {
        "type": "String"
    },
    "administratorLoginPassword": {
        "type": "SecureString"
    },
    
  4. Per usare i nuovi parametri, sostituire la definizione dell'istanza di SQL Server nella sezione resources.To use the new parameters, replace the SQL server definition in the resources section. Si noti che in administratorLogin e administratorLoginPassword vengono ora usati valori di parametro.Notice that administratorLogin and administratorLoginPassword now use parameter values.

    {
        "comments": "Generalized from resource: '/subscriptions/{subscription-id}/resourceGroups/exportsite/providers/Microsoft.Sql/servers/tfserverexport'.",
        "type": "Microsoft.Sql/servers",
        "kind": "v12.0",
        "name": "[parameters('servers_tfserverexport_name')]",
        "apiVersion": "2014-04-01-preview",
        "location": "South Central US",
        "scale": null,
        "properties": {
            "administratorLogin": "[parameters('administratorLogin')]",
            "administratorLoginPassword": "[parameters('administratorLoginPassword')]",
            "version": "12.0"
        },
        "dependsOn": []
    },
    
  5. Selezionare OK una volta terminata la modifica del modello.Select OK when you are done editing the template.

  6. Selezionare Salva per salvare le modifiche al modello.Select Save to save the changes to the template.

    salvare il modello

  7. Per ridistribuire il modello aggiornato, selezionare Distribuisci.To redeploy the updated template, select Deploy.

    distribuire un modello

  8. Specificare i valori dei parametri e selezionare un gruppo di risorse in cui distribuire le risorse.Provide parameter values, and select a resource group to deploy the resources to.

Risolvere i problemi di esportazioneFix export issues

Non tutti i tipi di risorse supportano la funzione di esportazione del modello.Not all resource types support the export template function. Per risolvere il problema, aggiungere manualmente le risorse mancanti al modello.To resolve this issue, manually add the missing resources back into your template. Il messaggio di errore include i tipi di risorsa che non possono essere esportati.The error message includes the resource types that cannot be exported. Trovare il tipo di risorsa nelle informazioni di riferimento sui modelli.Find that resource type in Template reference. Per aggiungere manualmente un gateway di rete virtuale, ad esempio, vedere le informazioni di riferimento sul modello Microsoft.Network/virtualNetworkGateways.For example, to manually add a virtual network gateway, see Microsoft.Network/virtualNetworkGateways template reference.

Nota

Si verificano problemi di esportazione solo quando si esporta da un gruppo di risorse invece che dalla cronologia della distribuzione.You only encounter export issues when exporting from a resource group rather than from your deployment history. Se la distribuzione più recente rappresenta con precisione lo stato corrente del gruppo di risorse, è consigliabile esportare il modello dalla cronologia della distribuzione invece che dal gruppo di risorse.If your last deployment accurately represents the current state of the resource group, you should export the template from the deployment history rather than from the resource group. Eseguire l'esportazione da un gruppo di risorse solo quando sono state apportate al gruppo di risorse modifiche non definite in un singolo modello.Only export from a resource group when you have made changes to the resource group that are not defined in a single template.

Passaggi successiviNext steps

Si è appreso come esportare un modello da risorse create nel portale.You have learned how to export a template from resources that you created in the portal.