Resolución de errores de tamaño de trabajo superado

En este artículo se describe cómo resolver los errores JobSizeExceededException y DeploymentJobSizeExceededException. Los errores de tamaño de trabajo excedido pueden producirse al implementar un archivo Bicep o una plantilla de Azure Resource Manager (plantilla de ARM).

Síntoma

Al implementar una plantilla, recibe un error que indica que la implementación ha superado los límites.

Causa

Este error se produce cuando la implementación supera el límite permitido. Normalmente, este error aparece cuando la plantilla o el trabajo que ejecuta la implementación son demasiado grandes.

El trabajo de implementación no puede ser mayor que 1 MB incluidos los metadatos de la solicitud. En el caso de las plantillas grandes, los metadatos combinados con la plantilla pueden superar el tamaño permitido de un trabajo.

La plantilla no puede superar los 4 MB y cada definición de recurso no puede superar los 1 MB. El límite se aplica al estado final de la plantilla después de su ampliación para las definiciones de recursos que utilizan bucles para crear muchas instancias. El estado final también incluye los valores resueltos para variables y parámetros.

Otros límites de la plantilla son los siguientes:

  • 256 parámetros
  • 256 variables
  • 800 recursos (incluido el recuento de copia)
  • 64 valores de salida
  • 24 576 caracteres en una expresión de plantilla

Solución 1: Usar las dependencias con cuidado

Use una dependencia implícita que se crea cuando un recurso hace referencia a otro recurso por su nombre simbólico. Para la mayoría de las implementaciones, no es necesario usar dependsOn y crear una dependencia explícita.

Solución 2: simplificar la plantilla

Cuando el archivo implementa muchos tipos de recursos diferentes, considere la posibilidad de dividirlo en módulos. Divida los tipos de recursos en grupos lógicos y agregue un módulo para cada grupo. Por ejemplo, si necesita implementar una gran cantidad de recursos de red, puede trasladar esos recursos a un módulo.

Puede establecer otros recursos como dependencias implícitas y obtener valores de la salida de los módulos.

Solución 3: reducir el tamaño de los nombres

Intente acortar la longitud de los nombres que utiliza para parámetros, variables y salidas. Cuando estos valores se repiten en bucles, un nombre largo se multiplica muchas veces.