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.