Résoudre les erreurs de dépassement de taille de la tâche
Article
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
Cette erreur se produit lorsque le déploiement dépasse les limites de taille autorisées. Elle apparaît généralement lorsque le modèle ou le travail de déploiement est trop volumineux. Notez que les modèles sont compressés avant que leurs tailles soient vérifiées pour le déploiement, de sorte que les limites effectives peuvent être supérieures à la taille réelle du modèle.
La limite de taille du travail de déploiement est de 1 Mo après la compression, y compris les métadonnées relatives à la requête. Pour les modèles volumineux, la taille combinée des métadonnées et le modèle peuvent dépasser cette limite.
En soi, la taille du modèle compressé ne peut pas dépasser 4 Mo, et chaque définition de ressource individuelle ne peut pas dépasser 1 Mo après la compression. Ces limites s’appliquent à l’état final du modèle après l’extension pour toutes les définitions de ressources qui utilisent des boucles pour créer plusieurs instances, ce qui inclut des valeurs résolues pour toutes les variables et paramètres.
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.
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 à l’aide de boucles de copie, un nom long est multiplié plusieurs fois.
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.
Lorsque votre modèle déploie un grand nombre de types de ressources, envisagez de le diviser en modèles liés. Divisez vos types de ressources en groupes logiques et ajoutez un modèle lié 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 modèle lié.
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.
Lorsque vous utilisez des boucles de copie pour déployer une ressource, n’utilisez pas le nom de boucle en tant que dépendance :
JSON
dependsOn: [ "nicLoop" ]
Au lieu de cela, utilisez l’instance de la ressource de la boucle dont vous devez dépendre. Par exemple :
Les dépendances complexes peuvent rapidement consommer les limites de données. Par exemple, si une boucle de ressources n dépend d’une autre boucle de ressources n, elle entraîne un stockage des données O(n²). En revanche, si chaque ressource d’une boucle dépend uniquement de son équivalent dans l’autre boucle, elle génère des données O(n). Cette différence peut paraître minime, mais l’impact sur le stockage augmente très rapidement.
Solution 4 : Réduire les données incompressibles
L’inclusion de grandes quantités de données incompressibles, telles que des certificats ou des fichiers binaires, ou des données avec un faible taux de compression dans un modèle ou des paramètres consommera rapidement la limite de taille.
Découvrez comment ajouter des étapes personnalisées à vos modèles Azure Resource Manager (modèles ARM) et fichiers Bicep avec des scripts de déploiement.
En tant qu’architecte de solutions Microsoft Azure, vous conseillez les parties prenantes et vous traduisez des exigences métier en conceptions de solutions Azure alignées sur Azure Well-Architected Framework et sur Cloud Adoption Framework pour Azure.
Décrit l’utilisation des modèles liés dans un modèle ARM (Azure Resource Manager) pour créer une solution de modèle modulaire. Indique comment transmettre des valeurs de paramètres, spécifier un fichier de paramètres et créer dynamiquement des URL.
Syntaxe et propriétés Azure Microsoft.Storage/storageAccounts à utiliser dans les modèles Azure Resource Manager pour déployer la ressource. Version de l’API la plus récente