Creazione e distribuzione di gruppi di risorse di Azure tramite Visual StudioCreating and deploying Azure resource groups through Visual Studio

Con Visual Studio e Azure SDKè possibile creare un progetto che distribuisce l'infrastruttura e il codice in Azure.With Visual Studio and the Azure SDK, you can create a project that deploys your infrastructure and code to Azure. Ad esempio, è possibile definire l'host Web, il sito Web e il database per l'app e distribuire l'infrastruttura insieme al codice.For example, you can define the web host, web site, and database for your app, and deploy that infrastructure along with the code. In alternativa, è possibile definire una macchina virtuale, una rete virtuale e un account di archiviazione e distribuire questa infrastruttura insieme a uno script che viene eseguito nella macchina virtuale.Or, you can define a Virtual Machine, Virtual Network and Storage Account, and deploy that infrastructure along with a script that is executed on Virtual Machine. Il progetto di distribuzione Gruppo di risorse di Azure consente di distribuire tutte le risorse necessarie in una singola operazione ripetibile.The Azure Resource Group deployment project enables you to deploy all the needed resources in a single, repeatable operation. Per altre informazioni sulla distribuzione e sulla gestione delle risorse, vedere Panoramica di Azure Resource Manager.For more information about deploying and managing your resources, see Azure Resource Manager overview.

I progetti di tipo Gruppo di risorse di Azure includono modelli JSON di Azure Resource Manager, che definiscono le risorse che vengono distribuite in Azure.Azure Resource Group projects contain Azure Resource Manager JSON templates, which define the resources that you deploy to Azure. Per informazioni sugli elementi del modello di Gestione risorse, vedere Creazione di modelli di Gestione risorse di Azure.To learn about the elements of the Resource Manager template, see Authoring Azure Resource Manager templates. Visual Studio consente di modificare questi modelli e offre strumenti utili per semplificare l'utilizzo dei modelli.Visual Studio enables you to edit these templates, and provides tools that simplify working with templates.

In questo articolo viene eseguita la distribuzione di un'app Web e un database SQL.In this article, you deploy a web app and SQL Database. I passaggi sono però quasi identici per qualsiasi tipo di risorsa.However, the steps are almost the same for any type resource. È possibile distribuire con altrettanta facilità una macchina virtuale e le rispettive risorse.You can as easily deploy a Virtual Machine and its related resources. Visual Studio offre molti modelli di partenza per la distribuzione di scenari comuni.Visual Studio provides many different starter templates for deploying common scenarios.

Questo articolo illustra la procedura per Visual Studio 2017.This article shows Visual Studio 2017. Se si usa Visual Studio 2015 Update 2 e Microsoft Azure SDK per .NET 2.9 oppure Visual Studio 2013 con Azure SDK 2.9, l'esperienza è sostanzialmente uguale.If you use Visual Studio 2015 Update 2 and Microsoft Azure SDK for .NET 2.9, or Visual Studio 2013 with Azure SDK 2.9, your experience is largely the same. È anche possibile usare Azure SDK 2.6 o versione successiva, ma l'esperienza dell'interfaccia utente può essere diversa da quella illustrata in questo articolo.You can use versions of the Azure SDK from 2.6 or later; however, your experience of the user interface may be different than the user interface shown in this article. È consigliabile installare la versione più recente di Azure SDK prima di iniziare la procedura.We strongly recommend that you install the latest version of the Azure SDK before starting the steps.

Creare un progetto Gruppo di risorse di AzureCreate Azure Resource Group project

In questa procedura verrà creato un progetto Gruppo di risorse di Azure con un modello App Web e SQL .In this procedure, you create an Azure Resource Group project with a Web app + SQL template.

  1. In Visual Studio scegliere File, Nuovo progetto e quindi C# o Visual Basic. Il linguaggio scelto non ha alcun impatto sulle fasi successive perché questi progetti includono solo contenuto JSON e PowerShell.In Visual Studio, choose File, New Project, choose either C# or Visual Basic (which language you choose has no impact on the later stages as these projects contain only JSON and PowerShell content). Scegliere quindi Cloud e scegliere il progetto Gruppo di risorse di Azure.Then choose Cloud, and Azure Resource Group project.

    Progetto Distribuzione cloud

  2. Scegliere il modello da distribuire in Gestione risorse di Azure.Choose the template that you want to deploy to Azure Resource Manager. Si noti che sono disponibili molte opzioni diverse in base al tipo di progetto da distribuire.Notice there are many different options based on the type of project you wish to deploy. Per questo articolo scegliere il modello App Web e SQL .For this article, choose the Web app + SQL template.

    Scelta di un modello

    Il modello scelto è solo un punto di partenza. È possibile aggiungere e rimuovere risorse per ottenere lo scenario desiderato.The template you pick is just a starting point; you can add and remove resources to fulfill your scenario.

    Nota

    Visual Studio consente di recuperare un elenco dei modelli disponibili online.Visual Studio retrieves a list of available templates online. L'elenco è soggetto a modifiche.The list may change.

    Visual Studio crea un progetto di distribuzione di tipo Gruppo di risorse per l'app Web e il database SQL.Visual Studio creates a resource group deployment project for the web app and SQL database.

  3. Per visualizzare gli elementi creati, esaminare i nodi nel progetto di distribuzione.To see what you created, look at the node in the deployment project.

    visualizzazione dei nodi

    Poiché per questo esempio è stato scelto il modello App Web e SQL, verranno visualizzati i file seguenti:Since we chose the Web app + SQL template for this example, you see the following files:

    Nome fileFile name DESCRIZIONEDescription
    Deploy-AzureResourceGroup.ps1Deploy-AzureResourceGroup.ps1 Script di PowerShell che richiama i comandi di PowerShell per la distribuzione in Azure Resource Manager.A PowerShell script that invokes PowerShell commands to deploy to Azure Resource Manager.
    Nota : Visual Studio usa questo script di PowerShell per distribuire il modello.Note Visual Studio uses this PowerShell script to deploy your template. Eventuali modifiche apportate allo script influiscono sulla distribuzione in Visual Studio, quindi è opportuno prestare attenzione.Any changes you make to this script affect deployment in Visual Studio, so be careful.
    WebSiteSQLDatabase.jsonWebSiteSQLDatabase.json Modello di Resource Manager che definisce l'infrastruttura da distribuire in Azure e parametri che si possono specificare durante la distribuzione.The Resource Manager template that defines the infrastructure you want deploy to Azure, and the parameters you can provide during deployment. Definisce anche le dipendenze tra le risorse, per consentire a Resource Manager di distribuire le risorse nell'ordine corretto.It also defines the dependencies between the resources so Resource Manager deploys the resources in the correct order.
    WebSiteSQLDatabase.parameters.jsonWebSiteSQLDatabase.parameters.json File di parametri contenente i valori necessari per il modello,A parameters file that contains values needed by the template. che vengono passati per personalizzare ogni distribuzione.You pass in parameter values to customize each deployment.

    Tutti i progetti di distribuzione di tipo Gruppo di risorse contengono questi file di base.All resource group deployment projects contain these basic files. Altri progetti potrebbero includere file aggiuntivi per supportare altre funzionalità.Other projects may contain additional files to support other functionality.

Personalizzare il modello di Gestione risorseCustomize the Resource Manager template

È possibile personalizzare un progetto di distribuzione modificando i modelli JSON che descrivono le risorse da distribuire.You can customize a deployment project by modifying the JSON templates that describe the resources you want to deploy. JSON è l'acronimo di JavaScript Object Notation ed è un formato dati serializzati facile da usare.JSON stands for JavaScript Object Notation, and is a serialized data format that is easy to work with. I file JSON usano uno schema a cui viene fatto riferimento all'inizio di ogni file.The JSON files use a schema that you reference at the top of each file. Per comprendere meglio lo schema, è possibile scaricarlo e analizzarlo.If you want to understand the schema, you can download and analyze it. Lo schema definisce gli elementi validi, i tipi e i formati dei campi, i valori possibili dei valori enumerati e così via.The schema defines what elements are valid, the types and formats of fields, the possible values of enumerated values, and so on. Per informazioni sugli elementi del modello di Gestione risorse, vedere Creazione di modelli di Gestione risorse di Azure.To learn about the elements of the Resource Manager template, see Authoring Azure Resource Manager templates.

Per utilizzare il modello, aprire il file WebSiteSQLDatabase.json.To work on your template, open WebSiteSQLDatabase.json.

L'editor di Visual Studio offre strumenti utili per la modifica del modello di Resource Manager.The Visual Studio editor provides tools to assist you with editing the Resource Manager template. La finestra Struttura JSON semplifica la visualizzazione degli elementi definiti nel modello.The JSON Outline window makes it easy to see the elements defined in your template.

visualizzazione della struttura JSON

Se si seleziona un elemento disponibile nella struttura, viene visualizzata la parte corrispondente del modello e viene evidenziato il rispettivo codice JSON.Selecting any of the elements in the outline takes you to that part of the template and highlights the corresponding JSON.

esplorazione di JSON

È possibile aggiungere una risorsa facendo clic sul pulsante Aggiungi risorsa nella parte superiore della finestra Struttura JSON oppure facendo clic con il pulsante destro del mouse su risorse e scegliendo Aggiungi nuova risorsa.You can add a resource by either selecting the Add Resource button at the top of the JSON Outline window, or by right-clicking resources and selecting Add New Resource.

aggiungere una risorsa

Per questa esercitazione selezionare Account di archiviazione e specificare un nome.For this tutorial, select Storage Account and give it a name. Specificare un nome contenente non più di 11 caratteri costituiti solo da numeri e lettere minuscole.Provide a name that is no more than 11 characters, and only contains numbers and lower-case letters.

aggiunta di una risorsa di archiviazione

Si noti che non è stata aggiunta solo la risorsa, ma anche un parametro per il tipo di account di archiviazione e una variabile per il nome dell'account di archiviazione.Notice that not only was the resource added, but also a parameter for the type storage account, and a variable for the name of the storage account.

visualizzazione della struttura

Il parametro storageType è preimpostato con i tipi consentiti e un tipo predefinito.The storageType parameter is pre-defined with allowed types and a default type. È possibile usare questi valori o modificarli per il proprio scenario.You can leave these values or edit them for your scenario. Per impedire agli utenti di distribuire un account di archiviazione di tipo Archiviazione con ridondanza locale Premium tramite questo modello, rimuoverlo dai tipi consentiti.If you do not want anyone to deploy a Premium_LRS storage account through this template, remove it from the allowed types.

"storageType": {
  "type": "string",
  "defaultValue": "Standard_LRS",
  "allowedValues": [
    "Standard_LRS",
    "Standard_ZRS",
    "Standard_GRS",
    "Standard_RAGRS"
  ]
}

Visual Studio fornisce anche il supporto per IntelliSense, per semplificare l'individuazione delle proprietà disponibili durante la modifica del modello.Visual Studio also provides intellisense to help you understand what properties are available when editing the template. Ad esempio, per modificare le proprietà del piano di servizio app, passare alla risorsa HostingPlan e aggiungere un nuovo valore per properties.For example, to edit the properties for your App Service plan, navigate to the HostingPlan resource, and add a value for the properties. Si noti che IntelliSense mostra i valori disponibili e fornisce una descrizione di ogni valore.Notice that intellisense shows the available values and provides a description of that value.

visualizzazione di IntelliSense

È possibile impostare numberOfWorkers su 1.You can set numberOfWorkers to 1.

"properties": {
  "name": "[parameters('hostingPlanName')]",
  "numberOfWorkers": 1
}

Distribuire il progetto di tipo Gruppo di risorse in AzureDeploy the Resource Group project to Azure

È ora possibile distribuire il progetto.You are now ready to deploy your project. Quando si distribuisce un progetto di Azure Resource Manager, lo si distribuisce in un gruppo di risorse di Azure.When you deploy an Azure Resource Group project, you deploy it to an Azure resource group. Il gruppo di risorse è un raggruppamento logico di risorse che condividono un ciclo di vita comune.The resource group is a logical grouping of resources that share a common lifecycle.

  1. Dal menu di scelta rapida del nodo del progetto di distribuzione scegliere Distribuisci > Nuovo.On the shortcut menu of the deployment project node, choose Deploy > New.

    Voce di menu Distribuisci, Nuova distribuzione

    Verrà visualizzata la finestra di dialogo Distribuisci in gruppo di risorse .The Deploy to Resource Group dialog box appears.

    Finestra di dialogo Distribuisci in gruppo di risorse

  2. Nella casella di riepilogo a discesa Gruppo di risorse scegliere un gruppo di risorse esistente o crearne uno nuovo.In the Resource group dropdown box, choose an existing resource group or create a new one. Per creare un gruppo di risorse, aprire la casella di riepilogo a discesa Gruppo di risorse e scegliere Crea nuovo.To create a resource group, open the Resource Group dropdown box and choose Create New.

    Finestra di dialogo Distribuisci in gruppo di risorse

    Viene visualizzata la finestra di dialogo Crea gruppo di risorse .The Create Resource Group dialog box appears. Specificare un nome e una posizione per il gruppo, quindi selezionare Crea .Give your group a name and location, and select the Create button.

    Finestra di dialogo Crea gruppo di risorse

  3. Modificare i parametri per la distribuzione selezionando il pulsante Modifica parametri .Edit the parameters for the deployment by selecting the Edit Parameters button.

    Pulsante Modifica parametri

  4. Specificare i valori per i parametri vuoti e fare clic sul pulsante Salva .Provide values for the empty parameters and select the Save button. I parametri vuoti sono hostingPlanName, administratorLogin, administratorLoginPassword e databaseName.The empty parameters are hostingPlanName, administratorLogin, administratorLoginPassword, and databaseName.

    hostingPlanName specifica un nome per il piano di servizio app da creare .hostingPlanName specifies a name for the App Service plan to create.

    administratorLogin specifica il nome utente per l'amministratore di SQL Server.administratorLogin specifies the user name for the SQL Server administrator. Non usare nomi di amministratore comuni, ad esempio sa o admin.Do not use common admin names like sa or admin.

    administratorLoginPassword specifica una password per l'amministratore di SQL Server.The administratorLoginPassword specifies a password for SQL Server administrator. L'opzione Salva le password come testo normale nel file dei parametri non è sicura, quindi non selezionarla.The Save passwords as plain text in the parameters file option is not secure; therefore, do not select this option. Poiché la password non viene salvata come testo normale, è necessario immetterla ancora durante la distribuzione.Since the password is not saved as plain text, you need to provide this password again during deployment.

    databaseName specifica un nome per il database da creare.databaseName specifies a name for the database to create.

    Finestra di dialogo Modifica parametri

  5. Scegliere il pulsante Distribuisci per distribuire il progetto in Azure.Choose the Deploy button to deploy the project to Azure. Una console di PowerShell viene aperta al di fuori dell'istanza di Visual Studio.A PowerShell console opens outside of the Visual Studio instance. Immettere la password di amministratore di SQL Server nella console di PowerShell quando richiesto.Enter the SQL Server administrator password in the PowerShell console when prompted. La console di PowerShell potrebbe essere nascosta dietro altri elementi o ridotta a icona nella barra delle applicazioni.Your PowerShell console may be hidden behind other items or minimized in the task bar. Cercare la console e selezionarla per immettere la password.Look for this console and select it to provide the password.

    Nota

    È possibile che Visual Studio richieda l'installazione dei cmdlet di Azure PowerShell.Visual Studio may ask you to install the Azure PowerShell cmdlets. Per distribuire correttamente i gruppi di risorse, è necessario il cmdlet di Azure PowerShell.You need the Azure PowerShell cmdlets to successfully deploy resource groups. Se richiesto, occorre installarli.If prompted, install them.

  6. La distribuzione può richiedere alcuni minuti.The deployment may take a few minutes. Nelle finestre Output viene visualizzato lo stato della distribuzione.In the Output windows, you see the status of the deployment. Al termine della distribuzione, l'ultimo messaggio indica una distribuzione riuscita con un testo simile al seguente:When the deployment has finished, the last message indicates a successful deployment with something similar to:

     ... 
     18:00:58 - Successfully deployed template 'websitesqldatabase.json' to resource group 'DemoSiteGroup'.
    
  7. In un browser aprire il portale di Azure e accedere con il proprio account.In a browser, open the Azure portal and sign in to your account. Per visualizzare il gruppo di risorse, selezionare Gruppi di risorse e il gruppo di risorse in cui è stata effettuata la distribuzione.To see the resource group, select Resource groups and the resource group you deployed to.

    selezione di un gruppo

  8. Vengono visualizzate tutte le risorse distribuite.You see all the deployed resources. Si noti che il nome dell'account di archiviazione non è esattamente quello specificato quando si è aggiunta la risorsa.Notice that the name of the storage account is not exactly what you specified when adding that resource. L'account di archiviazione deve essere univoco.The storage account must be unique. Il modello aggiunge automaticamente una stringa di caratteri al nome specificato per fornire un nome univoco.The template automatically adds a string of characters to the name you provided to provide a unique name.

    visualizzazione delle risorse

  9. Se si apportano modifiche e si vuole ridistribuire il progetto, scegliere il gruppo di risorse esistente direttamente dal menu di scelta rapida del progetto Gruppo di risorse di Azure.If you make changes and want to redeploy your project, choose the existing resource group from the shortcut menu of Azure resource group project. Dal menu di scelta rapida scegliere Distribuiscie quindi il gruppo di risorse distribuito.On the shortcut menu, choose Deploy, and then choose the resource group you deployed.

    Gruppo di risorse di Azure distribuito

Distribuire codice con l'infrastrutturaDeploy code with your infrastructure

A questo punto è stata distribuita l'infrastruttura per l'app, ma non è stato ancora distribuito codice effettivo con il progetto.At this point, you have deployed the infrastructure for your app, but there is no actual code deployed with the project. Questo articolo illustra come distribuire un'app Web e tabelle del database SQL durante la distribuzione.This article shows how to deploy a web app and SQL Database tables during deployment. Se si sta distribuendo una macchina virtuale invece di un'app Web, è consigliabile eseguire codice nella macchina virtuale come parte della distribuzione.If you are deploying a Virtual Machine instead of a web app, you want to run some code on the machine as part of deployment. Il processo di distribuzione di codice per un'app Web o per la configurazione di una macchina virtuale è quasi uguale.The process for deploying code for a web app or for setting up a Virtual Machine is almost the same.

  1. Aggiungere un progetto alla soluzione Visual Studio.Add a project to your Visual Studio solution. Fare clic con il pulsante destro del mouse sulla soluzione e scegliere Aggiungi > Nuovo progetto.Right-click the solution, and select Add > New Project.

    Aggiunta del progetto

  2. Aggiungere un' Applicazione Web ASP.NET.Add an ASP.NET Web Application.

    aggiunta di un'app Web

  3. Selezionare MVC.Select MVC.

    selezione di MVC

  4. Dopo che Visual Studio ha creato l'app Web, vengono visualizzati entrambi i progetti nella soluzione.After Visual Studio creates your web app, you see both projects in the solution.

    Visualizzazione dei progetti

  5. Ora è necessario verificare che il progetto del gruppo di risorse sia a conoscenza del nuovo progetto.Now, you need to make sure your resource group project is aware of the new project. Tornare al progetto del gruppo di risorse (AzureResourceGroup1).Go back to your resource group project (AzureResourceGroup1). Fare clic con il pulsante destro del mouse su Riferimenti e scegliere Aggiungi riferimento.Right-click References and select Add Reference.

    Aggiungi riferimento

  6. Selezionare il progetto dell'app Web creato.Select the web app project that you created.

    Aggiungi riferimento

    Aggiungendo un riferimento si collega il progetto di app Web al progetto di gruppo di risorse e si impostano automaticamente tre proprietà chiave.By adding a reference, you link the web app project to the resource group project, and automatically set three key properties. Queste proprietà vengono visualizzate nella finestra Proprietà del riferimento.You see these properties in the Properties window for the reference.

    visualizzazione di un riferimento

    Le proprietà sono:The properties are:

    • In Additional Properties (Proprietà aggiuntive) è disponibile la posizione di staging del pacchetto di distribuzione Web di cui viene effettuato il push in Archiviazione di Azure.The Additional Properties contains the web deployment package staging location that is pushed to the Azure Storage. Prendere nota della cartella (ExampleApp) e del file (package.zip).Note the folder (ExampleApp) and file (package.zip). È necessario conoscere questi valori perché vengono specificati come parametri durante la distribuzioni dell'app.You need to know these values because you provide them as parameters when deploying the app.
    • In Include File Path (Includi percorso file) è disponibile il percorso in cui viene creato il pacchetto.The Include File Path contains the path where the package is created. In Include Targets (Includi destinazioni) è disponibile il comando che viene eseguito dalla distribuzione.The Include Targets contains the command that deployment executes.
    • Il valore predefinito di Build;Package consente alla distribuzione di sviluppare e creare un pacchetto di distribuzione Web (package.zip).The default value of Build;Package enables the deployment to build and create a web deployment package (package.zip).

      Il profilo di pubblicazione non è necessario, perché la distribuzione ottiene le informazioni necessarie dalle proprietà per creare il pacchetto.You do not need a publish profile as the deployment gets the necessary information from the properties to create the package.

  7. Tornare a WebSiteSQLDatabase.json e aggiungere una risorsa al modello.Go back to WebSiteSQLDatabase.json and add a resource to the template.

    aggiungere una risorsa

  8. Questa volta selezionare Distribuzione Web per app Web.This time select Web Deploy for Web Apps.

    aggiunta della distribuzione Web

  9. Ridistribuire il progetto Gruppo di risorse nel gruppo di risorse.Redeploy your resource group project to the resource group. Questa volta sono disponibili alcuni nuovi parametri.This time there are some new parameters. Non è necessario specificare valori per _artifactsLocation o _artifactsLocationSasToken, perché vengono generati automaticamente da Visual Studio.You do not need to provide values for _artifactsLocation or _artifactsLocationSasToken because Visual Studio automatically generates those values. È tuttavia necessario impostare la cartella e il nome file sul percorso contenente il pacchetto di distribuzione (ExampleAppPackageFolder ed ExampleAppPackageFileName nell'immagine seguente).However, you have to set the folder and file name to the path that contains the deployment package (shown as ExampleAppPackageFolder and ExampleAppPackageFileName in the following image). Specificare i valori visualizzati prima nelle proprietà di riferimento (ExampleApp e package.zip).Provide the values you saw earlier in the reference properties (ExampleApp and package.zip).

    aggiunta della distribuzione Web

    Per Account di archiviazione elementiselezionare l'account distribuito con questo gruppo di risorse.For the Artifact storage account, select the one deployed with this resource group.

  10. Al termine della distribuzione, selezionare l'app Web nel portale.After the deployment has finished, select your web app in the portal. Selezionare l'URL per passare al sito.Select the URL to browse to the site.

    Esplorazione del sito

  11. Si noti che l'app ASP.NET predefinita è stata distribuita correttamente.Notice that you have successfully deployed the default ASP.NET app.

    visualizzazione dell'app distribuita

Passaggi successiviNext steps