Résoudre les erreurs de dépassement de taille de la tâche

Cet article décrit comment résoudre les erreurs JobSizeExceededException et DeploymentJobSizeExceededException. Les erreurs de taille de poste dépassée peuvent se produire lorsque vous déployez un fichier Bicep ou un modèle Azure Resource Manager (modèle ARM).

Symptôme

Lors du déploiement d’un modèle, vous recevez une erreur indiquant que le déploiement a dépassé les limites.

Cause

Vous recevez cette erreur lorsque le déploiement dépasse l’une des limites autorisées. En règle générale, cette erreur s’affiche lorsque la taille de votre modèle ou de la tâche qui exécute le déploiement est trop importante.

Le travail de déploiement ne peut pas dépasser 1 Mo et inclut des métadonnées sur la requête. Pour les modèles volumineux, les métadonnées associées au modèle peuvent dépasser la taille autorisée pour une tâche.

Le modèle ne peut pas dépasser 4 Mo, tandis que chaque définition de ressource ne peut dépasser 1 Mo. La limite s’applique à l’état final du modèle, une fois développé, avec des définitions des ressources qui utilisent des boucles pour créer de nombreuses instances. L’état final comprend également les valeurs résolues pour les variables et les paramètres.

Autres limites des modèles :

  • 256 paramètres
  • 256 variables
  • 800 ressources (incluant le nombre de copies)
  • 64 valeurs de sortie
  • 24 576 caractères dans une expression de modèle

Solution 1 : Utiliser les dépendances avec soin

Utilisez une dépendance implicite créée lorsqu’une ressource fait référence à une autre ressource par son nom symbolique. Pour la plupart des déploiements, il n’est pas nécessaire d’utiliser dependsOn et de créer une dépendance explicite.

Solution 2 : Simplifier le modèle

Lorsque votre fichier déploie un grand nombre de types de ressources, envisagez de le diviser en modules. Divisez vos types de ressources en groupes logiques et ajoutez un module pour chaque groupe. Par exemple, si vous devez déployer un grand nombre de ressources réseau, vous pouvez déplacer ces ressources vers un module.

Vous pouvez définir d’autres ressources comme dépendances implicites et obtenir des valeurs à partir de la sortie des modules.

Solution 3 : Réduire la taille du nom

Essayez de raccourcir la longueur des noms que vous utilisez pour les paramètres, variables et sorties. Lorsque ces valeurs sont répétées dans des boucles, un nom long est multiplié de nombreuses fois.