Устранение ошибок, связанных с превышением размера задания

В этой статье описано, как устранять ошибки JobSizeExceededException и DeploymentJobSizeExceededException. Ошибки превышения размера для задания могут возникать при развертывании файла Bicep или шаблона Azure Resource Manager (шаблона ARM).

Симптом

При развертывании шаблона появляется сообщение об ошибке, указывающее на превышение пределов для развертывания.

Причина

Эта ошибка возникает, если развертывание превышает допустимый предел. Как правило, эта ошибка возникает, когда шаблон или задание, выполняющее развертывание, слишком велики.

Задание развертывания не может превышать размера 1 МБ, включая метаданные о запросе. Размер больших шаблонов с учетом метаданных может превышать допустимый размер задания.

Размер шаблона не может превышать 4 МБ, а каждое определение ресурса — 1 МБ. Ограничения применяются к окончательному состоянию шаблона после его расширения для определений ресурсов, использующих циклы для создания множества экземпляров. Конечное состояние также включает разрешенные значения для переменных и параметров.

Другие ограничения для шаблонов:

  • 256 параметров;
  • 256 переменных;
  • 800 ресурсов (включая число копий);
  • 64 выходных значения;
  • 24 576 знаков в выражении шаблона.

Решение 1. Будьте внимательны при использовании зависимостей

Используйте неявную зависимость, которая создается при ссылках ресурса на другой ресурс по символьному имени. Для большинства развертываний нет необходимости использовать dependsOn для создания явной зависимости.

Решение 2. Упрощение шаблона

Если файл развертывает много разных типов ресурсов, постарайтесь разделите его на модули. Разделите типы ресурсов на логические группы и добавьте отдельный модуль для каждой группы. Например, если требуется развернуть множество сетевых ресурсов, можно переместить эти ресурсы в модуль.

Вы можете назначать другие ресурсы неявными зависимостями и получать значения из выходных данных модулей.

Решение 3. Уменьшение длины имени

Попробуйте сократить длину имен, используемых для параметров, переменных и выходных данных. Когда эти значения повторяются в циклах копирования, длинное имя многократно дублируется.