Macchine virtuali in un modello di Azure Resource ManagerVirtual machines in an Azure Resource Manager template

Questo articolo descrive gli aspetti di un modello di Azure Resource Manager che si applicano alle macchine virtuali.This article describes aspects of an Azure Resource Manager template that apply to virtual machines. L'articolo descrive un modello completo per la creazione di una macchina virtuale; a tale scopo sono necessarie definizioni di risorse per gli account di archiviazione, le interfacce di rete, gli indirizzi IP pubblici e le reti virtuali.This article doesn’t describe a complete template for creating a virtual machine; for that you need resource definitions for storage accounts, network interfaces, public IP addresses, and virtual networks. Per altre informazioni su come queste risorse possono essere definite insieme, vedere Procedura dettagliata per un modello di Resource Manager.For more information about how these resources can be defined together, see the Resource Manager template walkthrough.

Sono disponibili numerosi modelli nella raccolta che includono la risorsa di VM.There are many templates in the gallery that include the VM resource. Di seguito sono descritti solo alcuni elementi che possono essere inclusi in un modello.Not all elements that can be included in a template are described here.

Questo esempio mostra una sezione di risorse tipica di un modello per la creazione di un numero specificato di VM:This example shows a typical resource section of a template for creating a specified number of VMs:

"resources": [
  { 
    "apiVersion": "2016-04-30-preview", 
    "type": "Microsoft.Compute/virtualMachines", 
    "name": "[concat('myVM', copyindex())]", 
    "location": "[resourceGroup().location]",
    "copy": {
      "name": "virtualMachineLoop", 
      "count": "[parameters('numberOfInstances')]"
    },
    "dependsOn": [
      "[concat('Microsoft.Network/networkInterfaces/myNIC', copyindex())]" 
    ], 
    "properties": { 
      "hardwareProfile": { 
        "vmSize": "Standard_DS1" 
      }, 
      "osProfile": { 
        "computername": "[concat('myVM', copyindex())]", 
        "adminUsername": "[parameters('adminUsername')]", 
        "adminPassword": "[parameters('adminPassword')]" 
      }, 
      "storageProfile": { 
        "imageReference": { 
          "publisher": "MicrosoftWindowsServer", 
          "offer": "WindowsServer", 
          "sku": "2012-R2-Datacenter", 
          "version": "latest" 
        }, 
        "osDisk": { 
          "name": "[concat('myOSDisk', copyindex())]",
          "caching": "ReadWrite", 
          "createOption": "FromImage" 
        },
        "dataDisks": [
          {
            "name": "[concat('myDataDisk', copyindex())]",
            "diskSizeGB": "100",
            "lun": 0,
            "createOption": "Empty"
          }
        ] 
      }, 
      "networkProfile": { 
        "networkInterfaces": [ 
          { 
            "id": "[resourceId('Microsoft.Network/networkInterfaces',
              concat('myNIC', copyindex()))]" 
          } 
        ] 
      },
      "diagnosticsProfile": {
        "bootDiagnostics": {
          "enabled": "true",
          "storageUri": "[concat('https://', variables('storageName'), '.blob.core.windows.net')]"
        }
      } 
    },
    "resources": [ 
      { 
        "name": "Microsoft.Insights.VMDiagnosticsSettings", 
        "type": "extensions", 
        "location": "[resourceGroup().location]", 
        "apiVersion": "2016-03-30", 
        "dependsOn": [ 
          "[concat('Microsoft.Compute/virtualMachines/myVM', copyindex())]" 
        ], 
        "properties": { 
          "publisher": "Microsoft.Azure.Diagnostics", 
          "type": "IaaSDiagnostics", 
          "typeHandlerVersion": "1.5", 
          "autoUpgradeMinorVersion": true, 
          "settings": { 
            "xmlCfg": "[base64(concat(variables('wadcfgxstart'), 
            variables('wadmetricsresourceid'), 
            concat('myVM', copyindex()),
            variables('wadcfgxend')))]", 
            "storageAccount": "[variables('storageName')]" 
          }, 
          "protectedSettings": { 
            "storageAccountName": "[variables('storageName')]", 
            "storageAccountKey": "[listkeys(variables('accountid'), 
              '2015-06-15').key1]", 
            "storageAccountEndPoint": "https://core.windows.net" 
          } 
        } 
      },
      {
        "name": "MyCustomScriptExtension",
        "type": "extensions",
        "apiVersion": "2016-03-30",
        "location": "[resourceGroup().location]",
        "dependsOn": [
          "[concat('Microsoft.Compute/virtualMachines/myVM', copyindex())]"
        ],
        "properties": {
          "publisher": "Microsoft.Compute",
          "type": "CustomScriptExtension",
          "typeHandlerVersion": "1.7",
          "autoUpgradeMinorVersion": true,
          "settings": {
            "fileUris": [
              "[concat('https://', variables('storageName'),
                '.blob.core.windows.net/customscripts/start.ps1')]" 
            ],
            "commandToExecute": "powershell.exe -ExecutionPolicy Unrestricted -File start.ps1"
          }
        }
      } 
    ]
  } 
]

Nota

Questo esempio si basa su un account di archiviazione creato in precedenza.This example relies on a storage account that was previously created. È possibile creare l'account di archiviazione mediante la distribuzione dal modello.You could create the storage account by deploying it from the template. L'esempio si basa anche su un'interfaccia di rete e le risorse dipendenti definite nel modello.The example also relies on a network interface and its dependent resources that would be defined in the template. Queste risorse non vengono visualizzate nell'esempio.These resources are not shown in the example.

Versione dell'APIAPI Version

Quando si distribuiscono risorse usando un modello, è necessario specificare una versione dell'API da usare.When you deploy resources using a template, you have to specify a version of the API to use. L'esempio illustra l'uso di questa risorsa di macchina virtuale usando l'elemento apiVersion:The example shows the virtual machine resource using this apiVersion element:

"apiVersion": "2016-04-30-preview",

La versione dell'API specificata nel modello influisce sulle proprietà che è possibile definire nel modello.The version of the API you specify in your template affects which properties you can define in the template. In generale, è opportuno selezionare la versione più recente dell'API durante la creazione di modelli.In general, you should select the most recent API version when creating templates. Per i modelli esistenti, è possibile decidere se si desidera continuare a usare una versione precedente dell'API o aggiornare il modello alla versione più recente per sfruttare i vantaggi delle nuove funzionalità.For existing templates, you can decide whether you want to continue using an earlier API version, or update your template for the latest version to take advantage of new features.

Per ottenere le versioni dell'API più aggiornate:Use these opportunities for getting the latest API versions:

Parametri e variabiliParameters and variables

I parametri semplificano la specifica di valori per il modello quando viene eseguito.Parameters make it easy for you to specify values for the template when you run it. Nell'esempio viene usata questa sezione dei parametri:This parameters section is used in the example:

"parameters": {
  "adminUsername": { "type": "string" },
  "adminPassword": { "type": "securestring" },
  "numberOfInstances": { "type": "int" }
},

Quando si distribuisce il modello di esempio, si immettono valori per il nome e la password dell'account amministratore in ogni VM e il numero di VM da creare.When you deploy the example template, you enter values for the name and password of the administrator account on each VM and the number of VMs to create. È possibile scegliere di specificare i valori di parametri in un file separato gestito con il modello o fornire i valori quando viene richiesto.You have the option of specifying parameter values in a separate file that's managed with the template, or providing values when prompted.

Le variabili semplificano la configurazione di valori nel modello usati ripetutamente o che possono cambiare nel tempo.Variables make it easy for you to set up values in the template that are used repeatedly throughout it or that can change over time. L'esempio usa questa sezione delle variabili:This variables section is used in the example:

"variables": { 
  "storageName": "mystore1",
  "accountid": "[concat('/subscriptions/', subscription().subscriptionId, 
    '/resourceGroups/', resourceGroup().name,
  '/providers/','Microsoft.Storage/storageAccounts/', variables('storageName'))]", 
  "wadlogs": "<WadCfg> 
    <DiagnosticMonitorConfiguration overallQuotaInMB=\"4096\" xmlns=\"http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration\"> 
      <DiagnosticInfrastructureLogs scheduledTransferLogLevelFilter=\"Error\"/> 
      <WindowsEventLog scheduledTransferPeriod=\"PT1M\" > 
        <DataSource name=\"Application!*[System[(Level = 1 or Level = 2)]]\" /> 
        <DataSource name=\"Security!*[System[(Level = 1 or Level = 2)]]\" /> 
        <DataSource name=\"System!*[System[(Level = 1 or Level = 2)]]\" />
      </WindowsEventLog>", 
  "wadperfcounters": "<PerformanceCounters scheduledTransferPeriod=\"PT1M\">
      <PerformanceCounterConfiguration counterSpecifier=\"\\Process(_Total)\\Thread Count\" sampleRate=\"PT15S\" unit=\"Count\">
        <annotation displayName=\"Threads\" locale=\"en-us\"/>
      </PerformanceCounterConfiguration>
    </PerformanceCounters>", 
  "wadcfgxstart": "[concat(variables('wadlogs'), variables('wadperfcounters'), 
    '<Metrics resourceId=\"')]", 
  "wadmetricsresourceid": "[concat('/subscriptions/', subscription().subscriptionId, 
    '/resourceGroups/', resourceGroup().name , 
    '/providers/', 'Microsoft.Compute/virtualMachines/')]", 
  "wadcfgxend": "\"><MetricAggregation scheduledTransferPeriod=\"PT1H\"/>
    <MetricAggregation scheduledTransferPeriod=\"PT1M\"/>
    </Metrics></DiagnosticMonitorConfiguration>
    </WadCfg>"
}, 

Quando si distribuisce il modello di esempio, vengono usati valori di variabili per il nome e l'identificatore dell'account di archiviazione creato in precedenza.When you deploy the example template, variable values are used for the name and identifier of the previously created storage account. Le variabili consentono anche di fornire le impostazioni per l'estensione di diagnostica.Variables are also used to provide the settings for the diagnostic extension. Usare le procedure consigliate per la creazione di Azure Resource Manager per decidere come si vuole organizzare i parametri e le variabili del modello.Use the best practices for creating Azure Resource Manager templates to help you decide how you want to structure the parameters and variables in your template.

cicli di risorseResource loops

Quando sono necessarie più macchine virtuali per l'applicazione, è possibile usare un elemento di copia in un modello.When you need more than one virtual machine for your application, you can use a copy element in a template. Questo elemento facoltativo esegue il ciclo di creazione del numero di VM specificato come parametro:This optional element loops through creating the number of VMs that you specified as a parameter:

"copy": {
  "name": "virtualMachineLoop", 
  "count": "[parameters('numberOfInstances')]"
},

Si noti anche nell'esempio che l'indice di ciclo viene usato quando si specificano alcuni valori per la risorsa.Also, notice in the example that the loop index is used when specifying some of the values for the resource. Ad esempio, se è stato immesso un numero di istanze pari a tre, i nomi dei dischi del sistema operativo sono myOSDisk1, myOSDisk2 e myOSDisk3:For example, if you entered an instance count of three, the names of the operating system disks are myOSDisk1, myOSDisk2, and myOSDisk3:

"osDisk": { 
  "name": "[concat('myOSDisk', copyindex())]",
  "caching": "ReadWrite", 
  "createOption": "FromImage" 
}

Nota

Questo esempio usa dischi gestiti per le macchine virtuali.This example uses managed disks for the virtual machines.

Tenere presente che la creazione di un ciclo per una risorsa nel modello potrebbe richiedere di usare il ciclo quando si crea o si accede ad altre risorse.Keep in mind that creating a loop for one resource in the template may require you to use the loop when creating or accessing other resources. Ad esempio, più VM non possono usare la stessa interfaccia di rete; pertanto se esegue il ciclo di creazione di tre VM, il modello deve anche eseguire il ciclo di creazione di tre interfacce di rete.For example, multiple VMs can’t use the same network interface, so if your template loops through creating three VMs it must also loop through creating three network interfaces. Quando si assegna un'interfaccia di rete a una VM, l'indice di ciclo viene usato per la relativa identificazione:When assigning a network interface to a VM, the loop index is used to identify it:

"networkInterfaces": [ { 
  "id": "[resourceId('Microsoft.Network/networkInterfaces',
    concat('myNIC', copyindex()))]" 
} ]

DipendenzeDependencies

Il corretto funzionamento della maggior parte delle risorse dipende dalle altre risorse.Most resources depend on other resources to work correctly. Le macchine virtuali deve essere associate a una rete virtuale e a tale scopo è necessaria un'interfaccia di rete.Virtual machines must be associated with a virtual network and to do that it needs a network interface. L'elemento dependsOn viene usato per verificare che l'interfaccia di rete sia pronta per essere usata prima che vengano create le VM:The dependsOn element is used to make sure that the network interface is ready to be used before the VMs are created:

"dependsOn": [
  "[concat('Microsoft.Network/networkInterfaces/', 'myNIC', copyindex())]" 
],

Resource Manager consente di distribuire in parallelo le risorse la cui distribuzione non dipende da un'altra risorsa.Resource Manager deploys in parallel any resources that are not dependent on another resource being deployed. Prestare attenzione quando si impostano le dipendenze in quanto si può rallentare inavvertitamente la distribuzione, specificando dipendenze non necessarie.Be careful when setting dependencies because you can inadvertently slow your deployment by specifying unnecessary dependencies. Le dipendenze possono concatenare più risorse.Dependencies can chain through multiple resources. Ad esempio, l'interfaccia di rete dipende dall'indirizzo IP pubblico e dalle risorse della rete virtuale.For example, the network interface depends on the public IP address and virtual network resources.

Come è possibile stabilire se è necessaria una dipendenza?How do you know if a dependency is required? Esaminare i valori impostati nel modello.Look at the values you set in the template. Una dipendenza è necessaria se un elemento nella definizione di risorsa della macchina virtuale punta a un'altra risorsa distribuita nello stesso modello.If an element in the virtual machine resource definition points to another resource that is deployed in the same template, you need a dependency. Ad esempio, la macchina virtuale di esempio definisce un profilo di rete:For example, your example virtual machine defines a network profile:

"networkProfile": { 
  "networkInterfaces": [ { 
    "id": "[resourceId('Microsoft.Network/networkInterfaces',
      concat('myNIC', copyindex())]" 
  } ] 
},

Per impostare questa proprietà, è necessario che esista l'interfaccia di rete.To set this property, the network interface must exist. Pertanto, è necessaria una dipendenza.Therefore, you need a dependency. È inoltre necessario impostare una dipendenza quando viene definita una risorsa (figlio) all'interno di un'altra risorsa (padre).You also need to set a dependency when one resource (a child) is defined within another resource (a parent). Ad esempio, le estensioni dello script personalizzate e le impostazioni di diagnostica vengono entrambe definite come risorse figlio della macchina virtuale.For example, the diagnostic settings and custom script extensions are both defined as child resources of the virtual machine. Non possono essere create fino a quando non esiste la macchina virtuale.They cannot be created until the virtual machine exists. Pertanto, entrambe le risorse sono contrassegnate come dipendenti nella macchina virtuale.Therefore, both resources are marked as dependent on the virtual machine.

ProfiliProfiles

Quando si definisce una risorsa di macchina virtuale, vengono usati diversi elementi di profilo.Several profile elements are used when defining a virtual machine resource. Alcuni sono necessari e alcuni sono facoltativi.Some are required and some are optional. Ad esempio, sono necessari gli elementi hardwareProfile, osProfile, storageProfile e networkProfile, ma diagnosticsProfile è facoltativo.For example, the hardwareProfile, osProfile, storageProfile, and networkProfile elements are required, but the diagnosticsProfile is optional. Questi profili definiscono impostazioni, ad esempio:These profiles define settings such as:

Dischi e immaginiDisks and images

In Azure i file del disco rigido virtuale possono rappresentare dischi o immagini.In Azure, vhd files can represent disks or images. Quando il sistema operativo in un file di disco rigido virtuale è specializzato per essere una VM specifica, vi viene fatto riferimento come disco.When the operating system in a vhd file is specialized to be a specific VM, it is referred to as a disk. Quando il sistema operativo in un file di disco rigido virtuale è generalizzato per essere usato per creare più VM, viene considerato un'immagine.When the operating system in a vhd file is generalized to be used to create many VMs, it is referred to as an image.

Creare nuove macchine virtuali e nuovi dischi da un'immagine della piattaformaCreate new virtual machines and new disks from a platform image

Quando si crea una VM, è necessario decidere quale sistema operativo usare.When you create a VM, you must decide what operating system to use. L'elemento imageReference viene usato per definire il sistema operativo di una nuova VM.The imageReference element is used to define the operating system of a new VM. L'esempio illustra una definizione per un sistema operativo Windows Server:The example shows a definition for a Windows Server operating system:

"imageReference": { 
  "publisher": "MicrosoftWindowsServer", 
  "offer": "WindowsServer", 
  "sku": "2012-R2-Datacenter", 
  "version": "latest" 
},

Se si vuole creare un sistema operativo Linux, è possibile usare questa definizione:If you want to create a Linux operating system, you might use this definition:

"imageReference": {
  "publisher": "Canonical",
  "offer": "UbuntuServer",
  "sku": "14.04.2-LTS",
  "version": "latest"
},

Le impostazioni di configurazione per il disco del sistema operativo vengono assegnate con l'elemento osDisk.Configuration settings for the operating system disk are assigned with the osDisk element. L'esempio definisce un nuovo disco gestito con la modalità di memorizzazione nella cache impostata su ReadWrite e con il disco creato da un'immagine della piattaforma:The example defines a new managed disk with the caching mode set to ReadWrite and that the disk is being created from a platform image:

"osDisk": { 
  "name": "[concat('myOSDisk', copyindex())]",
  "caching": "ReadWrite", 
  "createOption": "FromImage" 
},

Creare nuove macchine virtuali da dischi gestiti esistentiCreate new virtual machines from existing managed disks

Se si vuole creare macchine virtuali da dischi esistenti, rimuovere gli elementi imageReference e osProfile e definire le impostazioni del disco:If you want to create virtual machines from existing disks, remove the imageReference and the osProfile elements and define these disk settings:

"osDisk": { 
  "osType": "Windows",
  "managedDisk": { 
    "id": "[resourceId('Microsoft.Compute/disks', [concat('myOSDisk', copyindex())])]" 
  }, 
  "caching": "ReadWrite",
  "createOption": "Attach" 
},

Creare nuove macchine virtuali da un'immagine gestitaCreate new virtual machines from a managed image

Se si vuole creare una macchina virtuale da un'immagine gestita, cambiare l'elemento imageReference e definire queste impostazioni del disco:If you want to create a virtual machine from a managed image, change the imageReference element and define these disk settings:

"storageProfile": { 
  "imageReference": {
    "id": "[resourceId('Microsoft.Compute/images', 'myImage')]"
  },
  "osDisk": { 
    "name": "[concat('myOSDisk', copyindex())]",
    "osType": "Windows",
    "caching": "ReadWrite", 
    "createOption": "FromImage" 
  }
},

Collegare i dischi dei datiAttach data disks

È facoltativamente possibile aggiungere dischi di dati alle VM.You can optionally add data disks to the VMs. Il numero di dischi dipende dalle dimensioni del disco del sistema operativo in uso.The number of disks depends on the size of operating system disk that you use. Con le dimensioni delle VM impostate su Standard_DS1_v2, il numero massimo di dischi dati che possono essere aggiunti è due.With the size of the VMs set to Standard_DS1_v2, the maximum number of data disks that could be added to the them is two. Nell'esempio viene aggiunto un disco dati gestito a ogni VM:In the example, one managed data disk is being added to each VM:

"dataDisks": [
  {
    "name": "[concat('myDataDisk', copyindex())]",
    "diskSizeGB": "100",
    "lun": 0, 
    "caching": "ReadWrite",
    "createOption": "Empty"
  }
],

EstensioniExtensions

Sebbene siano una risorsa separata, le estensioni sono strettamente legate alle VM.Although extensions are a separate resource, they are closely tied to VMs. Le estensioni possono essere aggiunte come risorsa figlio della VM o come risorsa separata.Extensions can be added as a child resource of the VM or as a separate resource. L'esempio illustra l'aggiunta dell'estensione Diagnostica alle VM:The example shows the Diagnostics Extension being added to the VMs:

{ 
  "name": "Microsoft.Insights.VMDiagnosticsSettings", 
  "type": "extensions", 
  "location": "[resourceGroup().location]", 
  "apiVersion": "2016-03-30", 
  "dependsOn": [ 
    "[concat('Microsoft.Compute/virtualMachines/myVM', copyindex())]" 
  ], 
  "properties": { 
    "publisher": "Microsoft.Azure.Diagnostics", 
    "type": "IaaSDiagnostics", 
    "typeHandlerVersion": "1.5", 
    "autoUpgradeMinorVersion": true, 
    "settings": { 
      "xmlCfg": "[base64(concat(variables('wadcfgxstart'), 
      variables('wadmetricsresourceid'), 
      concat('myVM', copyindex()),
      variables('wadcfgxend')))]", 
      "storageAccount": "[variables('storageName')]" 
    }, 
    "protectedSettings": { 
      "storageAccountName": "[variables('storageName')]", 
      "storageAccountKey": "[listkeys(variables('accountid'), 
        '2015-06-15').key1]", 
      "storageAccountEndPoint": "https://core.windows.net" 
    } 
  } 
},

Questa risorsa di estensione usa la variabile storageName e le variabili di diagnostica per fornire i valori.This extension resource uses the storageName variable and the diagnostic variables to provide values. Se si vuole modificare i dati raccolti da questa estensione, è possibile aggiungere altri contatori delle prestazioni alla variabile wadperfcounters.If you want to change the data that is collected by this extension, you can add more performance counters to the wadperfcounters variable. È possibile anche scegliere di inserire i dati di diagnostica in un account di archiviazione diverso rispetto a quello in cui sono archiviati i dischi della VM.You could also choose to put the diagnostics data into a different storage account than where the VM disks are stored.

Sono disponibili numerose estensioni che è possibile installare in una VM, ma la più utile è probabilmente l'estensione dello script personalizzata.There are many extensions that you can install on a VM, but the most useful is probably the Custom Script Extension. Nell'esempio, al primo avvio in ogni VM viene eseguito uno script PowerShell denominato start.ps1:In the example, a PowerShell script named start.ps1 runs on each VM when it first starts:

{
  "name": "MyCustomScriptExtension",
  "type": "extensions",
  "apiVersion": "2016-03-30",
  "location": "[resourceGroup().location]",
  "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/myVM', copyindex())]"
  ],
  "properties": {
    "publisher": "Microsoft.Compute",
    "type": "CustomScriptExtension",
    "typeHandlerVersion": "1.7",
    "autoUpgradeMinorVersion": true,
    "settings": {
      "fileUris": [
        "[concat('https://', variables('storageName'),
          '.blob.core.windows.net/customscripts/start.ps1')]" 
      ],
      "commandToExecute": "powershell.exe -ExecutionPolicy Unrestricted -File start.ps1"
    }
  }
}

Lo script start.ps1 può eseguire molte attività di configurazione.The start.ps1 script can accomplish many configuration tasks. Ad esempio, i dischi di dati aggiunti alle VM nell'esempio non vengono inizializzati; è possibile usare uno script personalizzato per inizializzarli.For example, the data disks that are added to the VMs in the example are not initialized; you can use a custom script to initialize them. Se si devono eseguire più attività di avvio, è possibile usare il file start.ps1 per chiamare altri script PowerShell in Archiviazione di Azure.If you have multiple startup tasks to do, you can use the start.ps1 file to call other PowerShell scripts in Azure storage. L'esempio usa PowerShell, ma è possibile usare qualsiasi metodo di scripting disponibile nel sistema operativo in uso.The example uses PowerShell, but you can use any scripting method that is available on the operating system that you are using.

È possibile visualizzare lo stato delle estensioni installate dalle impostazioni Estensioni nel portale:You can see the status of the installed extensions from the Extensions settings in the portal:

Recuperare lo stato dell'estensione

È possibile anche ottenere informazioni sull'estensione tramite il comando Get-AzureRmVMExtension di PowerShell, il comando vm extension get dell'interfaccia della riga di comando di Azure 2.0 oppure l'API REST Get extension information.You can also get extension information by using the Get-AzureRmVMExtension PowerShell command, the vm extension get Azure CLI 2.0 command, or the Get extension information REST API.

DistribuzioniDeployments

Quando si distribuisce un modello, Azure tiene traccia delle risorse distribuite come gruppo e assegna automaticamente un nome a questo gruppo distribuito.When you deploy a template, Azure tracks the resources that you deployed as a group and automatically assigns a name to this deployed group. Il nome della distribuzione corrisponde a quello del modello.The name of the deployment is the same as the name of the template.

Per conoscere lo stato delle risorse nella distribuzione, è possibile usare il pannello Gruppo di risorse nel portale di Azure:If you are curious about the status of resources in the deployment, you can use the Resource Group blade in the Azure portal:

Ottenere informazioni sulla distribuzione

Non è un problema usare lo stesso modello per creare risorse o per aggiornare le risorse esistenti.It’s not a problem to use the same template to create resources or to update existing resources. Quando si usano comandi per distribuire i modelli, si ha la possibilità di indicare la modalità da usare.When you use commands to deploy templates, you have the opportunity to say which mode you want to use. La modalità può essere impostata su Completa o Incrementale.The mode can be set to either Complete or Incremental. Gli aggiornamenti incrementali sono il valore predefinito.The default is to do incremental updates. Prestare attenzione quando si usa la modalità Completa perché è possibile eliminare accidentalmente le risorse.Be careful when using the Complete mode because you may accidentally delete resources. Quando si imposta la modalità su Completa, Resource Manager elimina tutte le risorse nel gruppo di risorse che non sono presenti nel modello.When you set the mode to Complete, Resource Manager deletes any resources in the resource group that are not in the template.

Passaggi successiviNext Steps