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.
Quando si distribuiscono le risorse, specificare se la distribuzione è un aggiornamento incrementale o completo. Queste due modalità differiscono nel modo in cui Resource Manager gestisce le risorse che sono presenti nel gruppo di risorse ma non nel modello.
Importante
Usare gli stack di distribuzione per eseguire eliminazioni di risorse quando si usano modelli arm o file Bicep, perché la modalità completa verrà gradualmente deprecata.
Per entrambe le modalità, Resource Manager tenta di creare tutte le risorse specificate nel modello. Se la risorsa esiste già nel gruppo di risorse e le relative impostazioni sono invariate, non viene eseguita alcuna operazione per tale risorsa. Se si modificano i valori delle proprietà per una risorsa, la risorsa viene aggiornata con i nuovi valori. Se si tenta di aggiornare il percorso o il tipo di una risorsa esistente, la distribuzione fallisce con un errore. Implementare invece una nuova risorsa nella posizione o del tipo di cui hai bisogno.
La modalità predefinita è incrementale.
Modalità incrementale
In modalità incrementale Resource Manager lascia invariate le risorse esistenti nel gruppo di risorse, ma non specificate nel modello. Le risorse nel modello vengono aggiunte al gruppo di risorse.
Importante
La modalità incrementale è la modalità di distribuzione consigliata. Se è necessario eliminare le risorse come parte di un file Bicep o di un modello JSON ARM, usare gli stack di distribuzione.
Quando si ridistribuisce una risorsa esistente in modalità incrementale, tutte le proprietà vengono riapplicate. Le proprietà non vengono aggiunte in modo incrementale. Un malinteso comune consiste nel pensare che le proprietà non specificate nel modello vengano lasciate invariate. Se non si specificano determinate proprietà, Resource Manager interpreta la distribuzione come sovrascrivendo tali valori. Le proprietà non incluse nel modello vengono reimpostate sui valori predefiniti. Specificare tutti i valori non predefiniti per la risorsa, non solo quelli che si sta aggiornando. La definizione di risorsa nel modello contiene sempre lo stato finale della risorsa. Non può rappresentare un aggiornamento parziale di una risorsa esistente.
Avvertimento
In rari casi, è possibile specificare proprietà in una risorsa o in una delle sue risorse figlia. Due esempi comuni sono le subnet nelle reti virtuali e i valori di configurazione del sito per le app Web. In questi casi, è necessario gestire con attenzione gli aggiornamenti incrementali.
Per le subnet, specificare i valori tramite la proprietà subnets
sulla risorsa Microsoft.Network/virtualNetworks. Non definire i valori attraverso la risorsa figlia Microsoft.Network/virtualNetworks/subnets. Finché le subnet sono definite nella rete virtuale, è possibile ridistribuire la rete virtuale e non perdere le subnet.
Per i valori di configurazione del sito, i valori vengono implementati nel tipo di risorsa figlio Microsoft.Web/sites/config
. Se si ridistribuisce l'app Web e si specifica un oggetto vuoto per i valori di configurazione del sito, la risorsa figlio non viene aggiornata. Tuttavia, se specifichi nuovi valori di configurazione del sito, il tipo di risorsa figlio viene aggiornato.
Modalità completa
Avvertimento
La modalità completa non è consigliata. Se vuoi eseguire eliminazioni con distribuzioni di modelli Bicep o ARM, usa stack di distribuzione.
In modalità completa Resource Manager elimina le risorse esistenti nel gruppo di risorse, ma non specificate nel modello.
Annotazioni
Usa sempre l'operazione di simulazione prima di distribuire un modello in modalità completa. L'analisi 'What-if' mostra quali risorse verranno create, eliminate o modificate. Usa lo strumento "what-if" per evitare di eliminare involontariamente le risorse.
Se il modello include una risorsa non distribuita perché la condizione restituisce false, il risultato dipende dalla versione dell'API REST usata per distribuire il modello. Se si usa una versione precedente al 2019-05-10, la risorsa non viene eliminata. Con 2019-05-10 o versione successiva, la risorsa viene eliminata. Le versioni più recenti di Azure PowerShell e dell'interfaccia della riga di comando di Azure eliminano la risorsa.
Prestare attenzione nell’usare la modalità completa con i cicli di copia. Tutte le risorse non specificate nel modello dopo la risoluzione del ciclo di copia vengono eliminate.
Se esegui la distribuzione in più di un gruppo di risorse in un modello, le risorse nel gruppo di risorse specificato nell'operazione di distribuzione sono idonee per l'eliminazione. Le risorse nei gruppi di risorse secondarie non vengono eliminate.
Esistono alcune differenze nel modo in cui i tipi di risorse gestiscono le eliminazioni in modalità completa. Le risorse padre vengono eliminate automaticamente quando non sono specificate in un modello distribuito in modalità completa. Alcune risorse figlio non vengono eliminate automaticamente quando non sono specificate nel modello. Tuttavia, queste risorse figlio vengono eliminate se viene eliminata la risorsa padre.
Ad esempio, se il gruppo di risorse contiene una zona DNS (Microsoft.Network/dnsZones
tipo di risorsa) e un record CNAME (Microsoft.Network/dnsZones/CNAME
tipo di risorsa), la zona DNS è la risorsa padre per il record CNAME. Se si distribuisce con la modalità completa e non si include la zona DNS nel modello, la zona DNS e il record CNAME vengono entrambi eliminati. Se si include la zona DNS nel modello ma non si include il record CNAME, il CNAME non viene eliminato.
Per un elenco del modo in cui i tipi di risorse gestiscono l'eliminazione, vedere Eliminazione delle risorse di Azure per distribuzioni in modalità completa.
Se il gruppo di risorse è bloccato, la modalità completa non elimina le risorse.
Annotazioni
Solo i modelli a livello radice supportano la modalità di distribuzione completa. Per i modelli collegati o annidati, è necessario usare la modalità incrementale.
Le distribuzioni a livello di sottoscrizione non supportano la modalità completa.
Attualmente, il portale non supporta la modalità completa.
Risultato di esempio
Per illustrare la differenza tra le modalità incrementali e complete, considerare lo scenario seguente.
Il gruppo di risorse contiene:
- Risorsa A
- Risorsa B
- Risorsa C
Il modello contiene:
- Risorsa A
- Risorsa B
- Risorsa D
Quando viene distribuito in modalità incrementale , il gruppo di risorse ha:
- Risorsa A
- Risorsa B
- Risorsa C
- Risorsa D
Quando viene distribuita in modalità completa , la risorsa C viene eliminata. Il gruppo di risorse ha:
- Risorsa A
- Risorsa B
- Risorsa D
Impostare la modalità di distribuzione
Per impostare la modalità di distribuzione durante la distribuzione con PowerShell, usare il Mode
parametro .
New-AzResourceGroupDeployment `
-Mode Complete `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateFile c:\MyTemplates\storage.json
Per impostare la modalità di distribuzione durante la distribuzione con l'interfaccia della riga di comando di Azure, usare il mode
parametro .
az deployment group create \
--mode Complete \
--name ExampleDeployment \
--resource-group ExampleResourceGroup \
--template-file storage.json
L'esempio seguente mostra un modello collegato impostato sulla modalità di distribuzione incrementale:
"resources": [
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2020-10-01",
"name": "linkedTemplate",
"properties": {
"mode": "Incremental",
<nested-template-or-external-template>
}
}
]
Passaggi successivi
- Per informazioni sulla creazione di modelli di Resource Manager, vedi Comprendere la struttura e la sintassi dei modelli di ARM.
- Per informazioni sulla distribuzione delle risorse, vedere Distribuire risorse con i modelli di Resource Manager e Azure PowerShell.
- Per visualizzare le operazioni di un provider di risorse, vedere Azure REST API (API REST di Azure).