Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описано, как устранять ошибки JobSizeExceededException
и DeploymentJobSizeExceededException
. Ошибки превышения размера для задания могут возникать при развертывании файла Bicep или шаблона Azure Resource Manager (шаблона ARM).
Симптом
При развертывании шаблона появляется сообщение об ошибке, указывающее на превышение пределов для развертывания.
Причина
Эта ошибка возникает, когда развертывание превышает допустимые ограничения размера. Обычно он отображается, когда шаблон или задание развертывания слишком велико. Обратите внимание, что шаблоны сжимаются до проверки их размеров для развертывания, поэтому действующие ограничения могут быть больше фактического размера шаблона.
Ограничение размера задания развертывания составляет 1 МБ после сжатия, включая метаданные о запросе. Для больших шаблонов объединенный размер метаданных и шаблон может превысить это ограничение.
Размер сжатого шаблона не может превышать 4 МБ, и каждое определение отдельного ресурса не может превышать 1 МБ после сжатия. Эти ограничения применяются к окончательному состоянию шаблона после расширения для любых определений ресурсов, использующих циклы для создания нескольких экземпляров, включающего разрешенные значения для всех переменных и параметров.
Другие ограничения для шаблонов:
- 256 параметров;
- 256 переменных;
- 800 ресурсов (включая число копий);
- 64 выходных значения;
- 24 576 знаков в выражении шаблона.
Решение 1. Уменьшение размера имени
Попробуйте сократить длину имен, используемых для параметров, переменных и выходных данных. Когда эти значения повторяются в циклах копирования, длинное имя многократно дублируется.
Решение 2. Упрощение шаблона
При развертывании файла различных типов ресурсов рекомендуется разделить его на модули. Разделите типы ресурсов на логические группы и добавьте отдельный модуль для каждой группы. Например, если требуется развернуть множество сетевых ресурсов, можно переместить эти ресурсы в модуль.
Другие ресурсы можно задать как неявные зависимости и получить значения из выходных данных модулей.
Используйте спецификации шаблонов вместо модулей Bicep. Модули Bicep преобразуются в один шаблон ARM с вложенными шаблонами.
Решение 3. Тщательно используйте зависимости
Используйте неявную зависимость , созданную при ссылке на другой ресурс по его символьному имени. Для большинства развертываний не требуется использовать dependsOn
и создавать явную зависимость.
Сложные зависимости могут быстро использовать ограничения данных. Например, если цикл n ресурсов зависит от другого цикла n ресурсов, он приводит к хранению данных O(n) . Напротив, если каждый ресурс в одном цикле зависит только от своего аналога в другом цикле, он приводит к данным O(n ). Это различие может показаться тонким, но влияние хранилища растет очень быстро.
Решение 4. Сокращение несжатых данных
Включая большие объемы несжатых данных, таких как сертификаты или двоичные файлы, или данные с низким коэффициентом сжатия в шаблоне или параметрах быстро будут использовать ограничение размера.