Fouten oplossen voor taakgrootte overschreden

In dit artikel wordt beschreven hoe u de JobSizeExceededException fouten en DeploymentJobSizeExceededException kunt oplossen. Fouten die de taakgrootte overschrijdt, kunnen optreden wanneer u een Bicep-bestand of Azure Resource Manager-sjabloon (ARM-sjabloon) implementeert.

Symptoom

Wanneer u een sjabloon implementeert, ontvangt u een foutmelding waarin wordt aangegeven dat de implementatie limieten heeft overschreden.

Oorzaak

Deze fout wordt weergegeven wanneer de implementatie een toegestane limiet overschrijdt. Deze fout wordt meestal weergegeven wanneer de sjabloon of de taak waarmee de implementatie wordt uitgevoerd, te groot is.

De implementatietaak mag niet groter zijn dan 1 MB en bevat metagegevens over de aanvraag. Voor grote sjablonen kunnen de metagegevens in combinatie met de sjabloon de toegestane grootte van een taak overschrijden.

De sjabloon mag niet groter zijn dan 4 MB en elke resourcedefinitie mag niet groter zijn dan 1 MB. De limieten zijn van toepassing op de uiteindelijke status van de sjabloon nadat deze is uitgebreid voor resourcedefinities die gebruikmaken van lussen om veel exemplaren te maken. De uiteindelijke status bevat ook de opgeloste waarden voor variabelen en parameters.

Andere sjabloonlimieten zijn:

  • 256 parameters
  • 256 variabelen
  • 800 resources (inclusief het aantal kopieën)
  • 64 uitvoerwaarden
  • 24.576 tekens in een sjabloonexpressie

Oplossing 1: Afhankelijkheden zorgvuldig gebruiken

Gebruik een impliciete afhankelijkheid die wordt gemaakt wanneer een resource verwijst naar een andere resource met de symbolische naam. Voor de meeste implementaties is het niet nodig om een expliciete afhankelijkheid te gebruiken dependsOn en te maken.

Oplossing 2: Sjabloon vereenvoudigen

Wanneer uw bestand veel verschillende resourcetypen implementeert, kunt u overwegen het op te delen in modules. Verdeel uw resourcetypen in logische groepen en voeg voor elke groep een module toe. Als u bijvoorbeeld veel netwerkresources wilt implementeren, kunt u deze resources verplaatsen naar een module.

U kunt andere resources instellen als impliciete afhankelijkheden en waarden ophalen uit de uitvoer van modules.

Oplossing 3: Naamgrootte verkleinen

Probeer de lengte van de namen die u gebruikt voor parameters, variabelen en uitvoer te verkorten. Wanneer deze waarden in lussen worden herhaald, wordt een lange naam vele malen vermenigvuldigd.