Risolvere gli errori relativi al superamento delle dimensioni del processo
Questo articolo descrive come risolvere gli errori JobSizeExceededException
e DeploymentJobSizeExceededException
. Gli errori di superamento delle dimensioni del processo si possono verificare quando si distribuisce un file Bicep o un modello di Azure Resource Manager (modello di ARM).
Sintomo
Durante la distribuzione di un modello, viene visualizzato un errore che indica che la distribuzione ha superato i limiti.
Causa
Tale errore viene visualizzato quando la distribuzione supera un limite consentito. Solitamente, questo errore viene visualizzato quando il modello o il processo che esegue la distribuzione è troppo grande.
Il processo di distribuzione non può superare 1 MB, inclusi i metadati relativi alla richiesta. Per i modelli di grandi dimensioni, la combinazione di metadati e modello potrebbe superare le dimensioni del processo consentite.
Il modello non può superare i 4 MB e ogni definizione di risorsa non può superare 1 MB. Il limite di 4 MB si applica allo stato finale del modello dopo che è stato espanso per le definizioni delle risorse che si avvalgono di cicli per creare molte istanze. Lo stato finale include anche i valori risolti per le variabili e i parametri.
Altri limiti del modello sono riportati di seguito:
- 256 parametri
- 256 variabili
- 800 risorse (incluso il conteggio copie)
- 64 valori di output
- 24.576 caratteri in un'espressione di modello
Soluzione 1: usare le dipendenze con attenzione
Usare una dipendenza implicita che viene creata quando una risorsa fa riferimento a un'altra risorsa in base al nome simbolico. Per la maggior parte delle distribuzioni non è necessario usare dependsOn
e creare una dipendenza esplicita.
Soluzione 2: semplificare il modello
Quando un file distribuisce molti tipi di risorse diversi, è consigliabile la suddivisione in moduli. Suddividere i tipi di risorse in gruppi logici e aggiungere un modulo a ciascun gruppo. Ad esempio, se fosse necessario distribuire molte risorse di networking, si possono spostare tali risorse in un modulo.
È possibile impostare altre risorse come dipendenze implicite e ottenere valori dall'output dei moduli.